C# wcf为什么可以';我看不到我的https站点吗
我创建了一个简单的Web服务。 然后我创建了一个控制台主机,它必须通过https url托管服务 这是我的配置:C# wcf为什么可以';我看不到我的https站点吗,c#,wcf,ssl,C#,Wcf,Ssl,我创建了一个简单的Web服务。 然后我创建了一个控制台主机,它必须通过https url托管服务 这是我的配置: <?xml version="1.0" encoding="utf-8" ?> <configuration> <system.serviceModel> <services> <service behaviorConfiguration="mexBehaviour" na
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<services>
<service behaviorConfiguration="mexBehaviour" name="NuriServiceLibrary.NuriService">
<clear />
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="basicHttpBindingConfig"
contract="NuriServiceLibrary.iNuriService" listenUriMode="Explicit" />
<endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="https://192.168.....:8001/SecureConsole" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="mexBehaviour">
<serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<basicHttpBinding>
<binding name="basicHttpBindingConfig">
<security mode="Transport">
<transport clientCredentialType="None" />
</security>
</binding>
</basicHttpBinding>
</bindings>
</system.serviceModel>
</configuration>
这是我的程序。cs:
static void Main(string[] args)
{
ServiceHost host = new ServiceHost(typeof(NuriService));
host.Open();
foreach (Uri address in host.BaseAddresses)
{
Console.WriteLine("Listening on " + address);
}
Console.WriteLine("Press <Enter> to terminate Host.\n\n");
Console.ReadLine();
host.Close();
}
static void Main(字符串[]args)
{
ServiceHost主机=新的ServiceHost(typeof(NuriService));
host.Open();
foreach(host.BaseAddresses中的Uri地址)
{
Console.WriteLine(“监听”+地址);
}
Console.WriteLine(“按以终止主机。\n\n”);
Console.ReadLine();
host.Close();
}
我已通过以下方式创建了证书:
1.makecert.exe-sr LocalMachine-ss My-n CN=192.168-天空交易所-sk-pe
2.netsh http add sslcert ipport=192.168….:8001 certhash=(故意左)appid={(故意左)}
但问题是,我看不到我的https网页。。。我看到这个网站不可用。。
有人想到了吗?尝试将属性添加到
并指定一个空字符串:
通过您的实现,您只能期望通过在web浏览器中寻址您的基本地址来查看服务发布的元数据。在尝试执行此操作之前,在visual Studio中的Debugger中运行服务是值得的(不要运行主机,只运行service/lib)。如果运行时没有错误,请尝试在浏览器中寻址该服务
如果您真正想要的是托管您的服务并使用web浏览器作为客户端,那么您需要查看ASP.net您使用什么URL来访问服务元数据?无,我添加了端口为9000的ip,但网站也不会显示..您在哪里“添加”了端口为9000的ip地址?另外,当你说“网站”时,你是指WCF帮助页面吗?不,如果我按F5,我的控制台就会启动。。。然后,如果我打开https链接,我将看不到我的wcf页面,但只有一个页面不存在。https链接指向什么URL?如果您尝试使用Internet Explorer访问URL,您会得到什么?Internet Explorer无法显示禁用https的网页,并查看您是否可以通过
http://localhost:8001/SecureConsole?wsdl
。我现在得到了这个消息,它说找不到与绑定BasicHttpBinding的端点的scheme https匹配的基址。注册的基址方案为[http]。对于ServiceHost主机=新ServiceHost(typeof(NuriService));将行30
更改为
<serviceBehaviors>
<behavior name="mexBehaviour">
<serviceMetadata httpGetEnabled="false"
httpsGetEnabled="true"
httpsGetUrl="" />
</behavior>
</serviceBehaviors>
https://localhost:8001/SecureConsole?wsdl