2015-03-25 74 views
0

好吧我已经创建了一个WCF,我已经在IIS中测试并正常工作。将WCF DLL附加到现有网站

有一个网站运行情况,我已经做了以下这个服务添加到域:

-copied的WCF DLL到网站的bin文件夹。

- 也复制此服务使用的所有DLL。 (只是Newtonsoft.Json)

-Created下面的行一个新的.svc:

<%@ ServiceHost Language="C#" Debug="true" Service="wcfOnScore.OnScoreQuery"%> 

-and还增加了以下内容的网站的web.config文件:

<System.serviceModel> 
<behaviors> 
<serviceBehaviors> 
     <behavior name="WithDebug"> 
      <serviceMetadata httpGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="true" /> 
     </behavior> 
    </serviceBehaviors> 
</behaviors> 
<protocolMapping> 
    <add binding="basicHttpBinding" scheme="http" /> 
</protocolMapping> 
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" minFreeMemoryPercentageToActivateService="0" /> 
<services> 
    <service name="wcfOnScore.OnScoreQuery"> 
     <endpoint address="http://www.onscore.co.za/OnScoreQuery.svc" 
       binding="basicHttpBinding" 
       listenUri="/" 
       contract="wcfOnScore.IOnScoreQuery" /> 
    </service> 
</services> 
</system.serviceModel> 

现在这似乎工作。我进入以下页面,当我在浏览器中打开它:但是

Screenshot of ServicePage

Link To The Screenshot

,它不能悲伤地工作。我试图从C#Xamarin android应用程序中使用此服务。它应该返回一个JSON字符串。 当它在本地托管时,这样做很好 - 这让我相信问题不在于WCF,而是我尝试托管它的方式。

我可能错过了什么?还是有其他的选择?

在此先感谢的人。

编辑:

以为我已经包括错误。

“System.Reflection.TargetInvocationException:调用的目标引发了异常。”

这是完成的eventhandler参数返回的内容。

+0

听起来像您的代码抛出的异常。我建议你启用WCF跟踪(https://msdn.microsoft.com/en-us/library/ms733025(v=vs.110).aspx),它应该给你更多的例外细节 - 特别是InnerException和它的堆栈跟踪。 – Joe 2015-03-25 09:34:18

+0

情况并非如此。我在本地进行了测试。并且还测试了只执行测试字符串返回的DLL版本。所以我相信代码是正确的。 – Terrance00 2015-03-25 10:28:47

+0

如果您想了解发生了什么,您仍然需要查看TargetInvocationException的InnerException。 – Joe 2015-03-25 11:37:54

回答

0

这是一个答案,为什么我得到的错误,不是一个真正的解决方案。 (还)

我注释掉了Newtonsof.Json使用语句。并放入一个简单的文本返回工作。

因此,从这里我推断出WCF代码无法在json.dll上得到它的手。

因此,如果您想用作参考,它看起来像以上所有都是正确的。 (除了.dll偏离过程)。

0

如果您试图返回JSON,请先在浏览器上进行测试。由于您使用的是basicHttpBinding,因此您的服务是基于SOAP的服务。要在浏览器上获得结果,请将绑定更改为WebHttpBinding,并在您的Web配置中添加以下内容。

<endpointBehaviors> 
    <behavior name="RestBehavior"> 
     <webHttp /> 
    </behavior> 
    </endpointBehaviors> 

如果您能够在浏览器上获得响应,您也将通过android得到响应。

+0

我知道它返回一个字符串到我的Android应用程序。我已将问题隔离到服务代码无法找到newtonsoft.json.dll的事实。我需要正确引用它。检查[这](http://stackoverflow.com/questions/29254296/adding-a-dll-reference-to-a-project-without-visual-studio)如果你有时间?谢谢 – Terrance00 2015-03-25 11:42:09