我已经跟随"演练:创建和访问WCF服务"从http://msdn.microsoft.com/en-us/library/bb386386.aspx创建WCF服务库。我在WCF测试客户端测试了它。然后在另一个桌面应用程序中(让我们称之为A)最终我想使用这个WCF我添加了WCF测试客户端提供的服务引用
http://localhost:8733/...
这也有效。
现在,我正在发布和使用已发布版本的服务参考。这是我做的,我通过
发布了WCF服务库选择文件系统并输入
\ mywebaddress.example.com \ wwwroot的\ myWCFService
看起来发布成功,因为导航到
\\mywebaddress.example.com\wwwroot\myWCFService
在文件浏览器中,我看到创建了Web.config,.svc和bin文件夹。
现在,我试图从我的桌面应用程序A中引用此发布的版本。我不确定我应该选择哪些选项
以下是我的尝试:
我试过
\ mywebaddress.example.com \ wwwroot \ myWCFService
在添加服务引用的地址字段中,按下并收到错误在尝试查找服务时发生错误(详细信息)
\\mywebaddress.example.com\wwwroot\myWCFService.
点击详情时,我得到了下载
的错误\\mywebaddress.example.com\wwwroot\myWCFService
访问路径
\\mywebaddress.example.com\wwwroot\myWCFService
被拒绝。
如果在当前解决方案中定义了服务,请尝试构建解决方案并再次添加服务引用。
或者,我尝试了添加服务参考中的高级选项,然后从那里添加Web参考...并在URL字段中键入
http://www.example.com/myWCFService/
然后当按下箭头按钮时,我得到401 - 未经授权:由于凭证无效,访问被拒绝。
您无权使用您提供的凭据查看此目录或页面。在此URL中找到的Web服务中:值不能为null。参数名称:discoveryError& mexError。
后一个错误是在IIS设置中我禁用了匿名身份验证。启用匿名身份验证后,错误将变为:
403 - 禁止访问:访问被拒绝。 您无权使用您提供的凭据查看此目录或页面。
此网址提供的网络服务:下载时出现错误
http://www.example.com/wcfservice/_vti_bin/ListData.svc/ $元数据
请求失败,HTTP状态为404:Not Found。
答案 0 :(得分:2)
当我刚刚使用Visual Studio 2013发布WCF服务库项目时,我获得了文件系统,本地IIS和FTP站点的选项。当我选择“本地IIS”时,它会向我显示IIS Express和本地完整的IIS。
我刚刚通过选择“默认网站”并点击工具栏中的“创建Web应用程序”按钮发布到IIS。我命名了应用程序,单击“打开”,然后在主发布对话框中单击“发布”。
发布了一个bin文件夹,其中包含服务DLL及其所需的其他库,web.config和.svc文件。我能够毫无问题地浏览到.svc文件。我甚至可以将它作为服务引用添加到另一个项目中。
如果您总是要在IIS中托管您的服务,并且如果您不需要保持层的清晰分离(也许您只是编写一些简单的服务),那么我建议您使用“ WCF服务应用程序“模板而不是。这将创建一个Web项目,用于托管服务,以及服务本身所需的.svc和.cs文件。这更像是ASMX Web服务可用的唯一选项。