我在ASP.NET网站上的一个名为MyService.svc
的子文件夹中发布了一个WCF服务(WebServices
)。
在本地ASP.NET Web服务器上运行时,它可以正常工作。当发布到IIS运行的站点并尝试访问/WebServices/MyService.svc/jsdebug
时,我得到401 Unauthorized
。网站的其余部分工作正常。
有谁知道为什么?
以下是MyService.svc
的内容:
<%@ServiceHost
Language="C#"
Debug="true"
Service="MyApp.Core.MyService, MyApp.Core"
Factory="System.ServiceModel.Activation.WebScriptServiceHostFactory"
%>
MyApp.Core.MyService
是一个实现IMyService
的类(具有属性ServiceContract
和具有属性OperationContract
的方法声明)。
答案 0 :(得分:3)
默认情况下,除非另行配置,否则WCF服务将执行Windows身份验证。我认为以下应该可以解决问题:
<bindings>
<wsHttpBinding>
<binding name="wsHttp">
<security mode="None"/>
</binding>
</wsHttpBinding>
</bindings>
..并配置您的端点以使用此绑定配置。
答案 1 :(得分:1)
有三个可能阻止呼叫的地方:
以上所有内容都是在WCF配置中阻止它之前。但是从你的评论到blowdart,看起来你还没有配置WCF安全性。
还检查IIS日志中的401错误。并检查此post是否相关。
答案 2 :(得分:0)
web.config说什么?您是否在服务本身或目录中进行了身份验证?运输安全是开启还是关闭?消息安全性?
svc文件不配置安全性,这是配置文件的一部分