自定义端点地址上的WCF服务404

时间:2011-05-02 10:30:30

标签: wcf http-status-code-404

我可以浏览网络服务网址,它在浏览器中显示正常。

我可以从网络浏览器中获取?wsdl

当我访问该服务时,我得到一个404(小提琴手说:HTTP / 1.1 404 Not Found)

当我使用浏览器访问地址时会写入* .svclog,但是当我使用soap客户端访问地址时则不会写入。

using (ImportServiceClient client = 
    new ImportServiceClient("ImportServiceSoap12", REMOTE_ADDRESS))
{

我一直在尝试使用baseAddresses和WCFExtras wsdlExtensions。 仍然是相同的404。 我一直在看这个:http://www.jamesgoodfellow.com/blog/post/IIS-60---HTTP-404---File-not-found-Internet-Information-Services.aspx但是因为它是一个XP文件夹不存在,并且它在Web浏览器中工作,并且生成了* .svclog。

我试图让这个东西运行的测试计算机是XP。 通过无IP地址访问计算机。

在WCF之前我通过via解决了这个问题,但我似乎无法在WCF中找到解决方案。

更新

当对该端点执行“配置服务引用”时,我可以从fiddler中观察到一些有趣的事情:

/IntegrationServer/ImportService.svc返回404
/IntegrationServer/ImportService.svc/mex返回200
/IntegrationServer/ImportService.svc?wdsl返回200

更新2

似乎是 /IntegrationServer/ImportService.svc/soap
/IntegrationServer/ImportService.svc/soap12
也有效。这是我的端点配置。

<endpoint name="ImportServiceSoap" behaviorConfiguration="NoIpConfiguration" address="soap" binding="basicHttpBinding" contract="Integration.Server.IImportService"/>
<endpoint name="ImportServiceSoap12" behaviorConfiguration="NoIpConfiguration" address="soap12" binding="wsHttpBinding" contract="Integration.Server.IImportService">

如果我希望在客户端使用自定义端点地址,那么我总是必须将“地址”属性添加到服务地址吗?

1 个答案:

答案 0 :(得分:3)

是的,对于自定义端点地址,您需要在端点元素中配置地址属性。

没有看到服务web.config serviceModel元素内容,我猜测该服务被配置为提供两个元数据端点(...?wsdl)和(... / mex)。由于您的问题中显示的端点配置的配置方式(address =“soap”),您的UPDATE 2更改工作。来自MSDN的WCF中的Here is a good explanation of addressing