2015-03-25 78 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