题
我正在与WCF(VS2005,NET 3.0)工作,并希望通过经由web浏览器,而不是从代码直接调用它来测试的服务。
我一个方法装饰的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服务,我得到回应,当我访问通过浏览器的方式;然而,当我从方法访问该服务,但没有,我只能得到“你已经创建了一个服务”页面。
解决方案
WCF不提供所使用ASMX服务做了“从网络称之为”选项。为什么?这是一个巨大的安全漏洞,而不是测试Web服务的最佳方式。
一种选择是做为@Yossi建议,并使用WCF服务测试工具。
或者更好的是,编写自己的客户端使用Web服务。这将帮助你处理这些问题谁将会消耗你的服务会处理的,相信我,WCF可以有不少的挂断相同的问题。
不要误会我的意思,WCF是frikkin真棒!但是还有很多忙里忙外的,如果你是新的赔率是你要得到它错了。即使尝鲜仍然不知道WCF的所有的来龙去脉。
其他提示
使用 WCF服务测试工具考虑获取的初始测试您的服务(但really-单元测试是你的朋友:-))(和耶 - 你需要一个MEX终结,至少在初期)
至于调试 - 你连接到托管服务的正确处理?你使用调试符号编译?如果服务被发布到IIS - ?是已发布的代码一样在Visual Studio中代码
看一看WebGetAttribute - 这需要.NET 3.5
这允许你从一个WCF Web服务得到休息的数据。
不隶属于 StackOverflow