<%= Html.ActionLink("Index","Index","Home",new { @action = "https://" + Request.Hostname + Url.Action("Index","Home") }) %>
虽然一个丑陋的解决方案,@action关键字可以覆盖生成的路由,但这意味着应用程序看起来需要注意任何非标准端口(例如44300)。
问题是,我会写一些东西来解决一个只发生在开发环境中的问题。
所以我的问题是…如何将端口更改为443和IIS Express喜欢它?
我的网站的配置如下:
<site name="MySite" id="2" serverAutoStart="true"> <application path="/"> <virtualDirectory path="/" physicalPath="C:\Inetpub\MySite" /> </application> <bindings> <binding protocol="http" bindingInformation=":80:" /> <binding protocol="https" bindingInformation=":44300:" /> </bindings> </site>
提前谢谢了。
更新:
这个问题已经是answered由Divya在IIS论坛。
解决方法
Once you enable SSL for a website in WebMatrix,it defaults to port 44300 and does all the bindings in the background. I am hoping that you tried to change this port to 443 in the config file. Once that is done and saved,you also need to modify the binding in http.sys. You would need to delete the existing entry for port 44300 and add the entry for port 443.
To do this,you could use httpcfg (WinXp/Win2003) or ‘netsh http’ (WinVista/Win2K8/Win7).
Here are the commands for netsh:1) Get the appid and certhash for the existing entry of 44300 (I
assume,you are going to use the same certificate which WebMatrix
installs by default. If you want to change the certificate as well,
get the certificate hash of the certificate from the certificate
store):netsh http show sslcert
. In the output search for entry for
port 44300 and copy certhash and appID.2) Delete the entry for 44300:
netsh http delete sslcert ipport=0.0.0.0:44300
3) Add a new entry for port 443 with certhash and appID copied in step
1.netsh http add sslcert ipport=0.0.0.0:443 certhash=<certhash> appid=<appid>
After configuring the entry in http.sys,you need to restart http
service for the changes to take effect.
net stop http
net start http
正如其他人所指出的,有几种很好的方法来获得SSL证书。
netsh http show sslcert > output.txt
或(我的首选方法):
netsh http show sslcert | clip