PC:Windows 8.1 + 所有更新,VS 2012 + 所有更新。
我创建了一个我已经测试过的 WCF 服务,它可以工作。我想针对 Windows Phone 8 应用程序使用此服务,因此需要创建一个basicHttpBinding
接受用户名和密码的服务才能访问数据。这是我在完成在 IIS 上成功运行的服务后采取的步骤。
- 创建了一个 SSL(按照这里的步骤http://msdn.microsoft.com/en-us/library/hh556232.aspx)
更改了我的
web.config
文件,使其包含:<system.serviceModel> <services> <service behaviorConfiguration="NewBehavior1" name="Service"> <endpoint address="" binding="basicHttpBinding" contract="IService" bindingConfiguration="NewBinding1" /> <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" /> </service> </services> <bindings> <basicHttpBinding> <binding name="NewBinding1"> <security mode="TransportWithMessageCredential" /> </binding> </basicHttpBinding> </bindings> <behaviors> <serviceBehaviors> <behavior name="MEX"> <serviceMetadata/> </behavior> <behavior name="NewBehavior1"> <serviceMetadata httpGetEnabled="true"/> <serviceCredentials> <userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="Service, Services" /> </serviceCredentials> </behavior> </serviceBehaviors> </behaviors> <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
导航到
http://localhost/Service/Service.svc
并收到一条正确的 403.4 消息(如果没有 SSL,则无法访问),因此我将其替换为http
并https
可以查看服务页面。知道它可以使用
https
我打开 WCF 测试客户端工具并导航到相同的 URL 并得到错误(请注意我已经缩短了一些错误并留在主要区域)错误:无法从中获取元数据
https://localhost/Service/service.svc
如果这是您有权访问的 Windows (R) Communication Foundation 服务,请检查您是否已在指定地址启用元数据发布。
元数据包含无法解析的引用:“https://localhost/Service/service.svc
”。
无法为具有权限“localhost”的 SSL/TLS 安全通道建立信任关系。
基础连接已关闭:无法为 SSL/TLS 安全通道建立信任关系。
根据验证程序,远程证书无效。HTTP GET 错误我从 IIS 导出证书并将其安装在受信任的根证书颁发机构下的本地计算机和用户上。没有区别
所以现在我有点迷失了,因为我尝试过的任何东西似乎都不起作用。有人可以建议吗?