2009-05-27 50 views
0

我正在使用WCF(VS2005,.Net 3.0),並且想通過Web瀏覽器而不是代碼直接調用它來測試服務。無法直接調用WCF服務(.NET 3.0)

我有一個用OperationContract屬性調用GetTest()裝飾的方法。我有一個可以訪問的.svc文件的服務;但是,當我去.../Test.svc/GetTest時,只會出現一個空白屏幕。

這裏是web.config中:

<system.serviceModel> 
    <services> 
    <service name="TestService" behaviorConfiguration="TestBehavior"> 
     <endpoint 
     address="" 
     binding="basicHttpBinding" 
     contract="TestService.ITestService"></endpoint> 
    </service> 
    </services> 
    <behaviors> 
    <serviceBehaviors> 
     <behavior name="TestBehavior"> 
     <serviceMetadata httpGetEnabled="true"/> 
     </behavior> 
    </serviceBehaviors> 
    </behaviors> 
</system.serviceModel> 

每當我嘗試設置服務中的斷點,它沒有得到打爲好。關於我要去哪兒的任何想法都是錯誤的?我習慣了ASMX服務,當我通過瀏覽器訪問這些方法時,我得到了一個響應;然而,當我訪問服務時,我只能得到「您創建了服務」頁面,但沒有任何方法。

+0

WCF服務是基於SOAP的 - 您無法從瀏覽器調用SOAP服務。 – 2009-05-27 20:57:13

+0

@marc_s我已經制作了許多標準的ASMX服務,它們都是SOAP基礎,並且仍然能夠在瀏覽器中顯示SOAP消息。這正是我想在這裏完成的。 – JamesEggers 2009-05-27 21:07:31

回答

0

WCF不提供ASMX服務用於執行的「從網絡調用」選項。爲什麼?這是一個巨大的安全漏洞,而不是測試Web服務的最佳方式。

一種選擇是按照@Yossi的建議,並使用Wcf服務測試工具。或者更好的是,編寫你自己的客戶端來使用你的web服務。這將幫助您處理那些將使用您的服務的人將要處理的相同問題,並相信我,WCF可能會有相當多的這些掛斷。

不要誤解我的意思,WCF是frikkin太棒了!但是有很多事情要做,如果你有新的可能性,你會錯誤的。即使早期採用者仍然不知道WCF的全部內容。

+0

測試WCF服務時,此工具是不可或缺的。退房,http://www.wcfstorm.com。它實際上可以檢查您的WSDl並允許您動態調用方法 – user20155 2009-06-19 09:28:35

0

您是否嘗試過使用SoapUI?他們提供了一個非常棒的Web服務測試工具。他們甚至有一個免費版本,將作爲webStart運行!

此外,請嘗試安裝mex端點,c.f. msdn link.

4

考慮使用Wcf Service Test Tool爲您服務的初步測試(但really-單元測試是你的朋友:-))(和耶 - 你需要一個MEX終結,至少在初期)

至於調試 - 您是否依附了託管該服務的正確流程?你是否使用調試符號進行編譯?如果服務發佈到IIS - 發佈的代碼與Visual Studio中的代碼相同?

+0

我希望我可以使用WCFTestClient.exe;但是,我所處的環境限制了我只能使用.net 3.0(VS2005)。由於WCFTestClient.exe出現,如果它只與VS2008一起出現,我認爲我在那一個運氣不好。 – JamesEggers 2009-05-27 20:59:42

0

看看WebGetAttribute - 需要.NET 3.5。

這允許您從WCF Web服務獲取REST數據。