我创建了一个webapp和一个控制台应用程序来在IIS中注册网站。似乎根本没有问题。
这是我用来在IIS中注册网站的代码。
Dim manager As New ServerManager
Dim site As Site = manager.Sites.Add("MyControl", "http", "*:80:test.localhost", "C:\\inetpub\wwwroot\MyControl")
manager.ApplicationPools.Add("MyControl")
site.ApplicationDefaults.ApplicationPoolName = "MyControl"
manager.CommitChanges()站点在IIS中注册良好。输入为http,主机名为test.localhost,端口为80,ip为*。就像预期的那样。
我修改了我的主机文件,添加了行:127.0.0.1 test.localhost,这样导航到http://test.localhost就可以在重定向到IIS上的站点时解析。
这应该意味着重定向到默认页面default.html,它位于inetpub/wwwroot/MyControl的根目录中。
然而,这种情况并没有发生。我得到一个空白页,没有标题,源是空白的,但找不到一个页面。此外,如果我自己导航到http://test.localhost/default.html,我会得到一个空白页,但标题是: MyControl。如果我现在看一下源代码,我可以看到它找到了文件,但是没有显示任何内容。
如果我手动在IIS中设置网站,就没有问题。
任何想法都将不胜感激。
编辑:
到现在为止还好。现在,我已经使用了上面的代码。你问了什么?毫无线索。
现在我需要使用相同的网站,但安装它与SSL证书。
我在用这个代码
Module Main
<DllImport("advapi32.DLL", SetLastError:=True)>
Public Function LogonUser(ByVal username As String, ByVal domain As String,
ByVal password As String, ByVal logonType As Integer, ByVal logonProvider As Integer,
ByRef token As IntPtr) As Integer
End Function
Sub Main()
'Load indstillinger fra app.config
Dim sslPath As String = ConfigurationManager.AppSettings("sslPath")
Dim sslPassword As String = ConfigurationManager.AppSettings("sslPassword")
Dim remoteUsername As String = ConfigurationManager.AppSettings("remoteUsername")
Dim remotePassword As String = ConfigurationManager.AppSettings("remotePassword")
'Lav en store, således at vi kan få fat i vores ssl certifikat
Dim store As X509Store = New X509Store(StoreName.My, StoreLocation.LocalMachine)
store.Open(OpenFlags.OpenExistingOnly Or OpenFlags.ReadWrite)
'Generer credentials til impersonation
Dim adminToken As IntPtr = IntPtr.Zero
Dim admin As WindowsIdentity = Nothing
Dim context As WindowsImpersonationContext = Nothing
'Login med den specificerede bruger
LogonUser(remoteUsername, System.Environment.MachineName, remotePassword, 9, 0, adminToken) '9 afspejler logintype og 0 afspejler loginprovider - Ingen idé om hvad det har af betydning
admin = New WindowsIdentity(adminToken)
context = admin.Impersonate()
'Import af SSL certifikat
Dim certificate As X509Certificate2 = New X509Certificate2(sslPath, sslPassword) 'Sti til SSL certifikat og password til at installere dette
store.Add(certificate)
'Opret en manager og en config til oprettelse af site
Dim manager As New ServerManager
Dim config As Microsoft.Web.Administration.Configuration = manager.GetApplicationHostConfiguration()
'Opret site i IIS med det valgte certifikat
Dim site As Site = manager.Sites.Add("MyControl", "*:443:webmail.jcdhotel.dk", "C:\\inetpub\wwwroot\MyControl", certificate.GetCertHash())
'Kræv SSL
Dim accessSection As Microsoft.Web.Administration.ConfigurationSection = config.GetSection("system.webServer/security/access", "MyControl")
accessSection("sslFlags") = "Ssl"
'Opret en applicationpool specifikt til MyControl og sæt denne til default
manager.ApplicationPools.Add("MyControl")
site.ApplicationDefaults.ApplicationPoolName = "MyControl"
'Luk store
store.Close()
'Gem ændringer og revert impersonation
manager.CommitChanges()
context.Undo()
End Sub再来一次。代码正在IIS中注册网站,并将证书设置得很好。绑定如下所示

我再次修改了我的主机文件,添加了行127.0.0.1 webmail.jcdhotel.dk
我可以转到链接https://webmail.jcdhotel.dk并收到一个空白页面,而源是空白的。然后我可以转到https://webmail.jcdhotel.dk/default.html,标题将被设置,现在我可以检查源代码,但是页面仍然是空的。
再次,任何帮助都是非常感谢和感谢您在事先!
编辑:
新信息。通过手动尝试使用SSL证书将网站添加到IIS,我收到以下错误:

希望这将有助于对这一问题有所了解。
编辑:
最后编辑,希望:D
现在我可以使用SSL证书手动添加绑定。该问题是由于证书安装不正确造成的。这让我进入了最后的障碍。
使用vb.net将证书添加到存储区时。如何检查“允许证书导出”?-因为这解决了手动添加证书时的问题。
发布于 2013-12-23 12:25:08
在尝试之后,似乎是所有的事情,我最终得到了以下代码
<DllImport("advapi32.DLL", SetLastError:=True)>
Public Function LogonUser(ByVal username As String, ByVal domain As String,
ByVal password As String, ByVal logonType As Integer, ByVal logonProvider As Integer,
ByRef token As IntPtr) As Integer
End Function
Sub Main()
'Load indstillinger fra app.config
Dim sslPath As String = ConfigurationManager.AppSettings("sslPath")
Dim sslPassword As String = ConfigurationManager.AppSettings("sslPassword")
Dim remoteUsername As String = ConfigurationManager.AppSettings("remoteUsername")
Dim remotePassword As String = ConfigurationManager.AppSettings("remotePassword")
'Lav en store, således at vi kan få fat i vores ssl certifikat
Dim store As X509Store = New X509Store(StoreName.My, StoreLocation.LocalMachine)
store.Open(OpenFlags.ReadWrite)
'Generer credentials til impersonation
Dim adminToken As IntPtr = IntPtr.Zero
Dim admin As WindowsIdentity = Nothing
Dim context As WindowsImpersonationContext = Nothing
'Login med den specificerede bruger
LogonUser(remoteUsername, System.Environment.MachineName, remotePassword, 9, 0, adminToken) '9 afspejler logintype og 0 afspejler loginprovider - Ingen idé om hvad det har af betydning
admin = New WindowsIdentity(adminToken)
context = admin.Impersonate()
'Import af SSL certifikat
Dim certificate As X509Certificate2 = New X509Certificate2(sslPath, sslPassword, X509KeyStorageFlags.PersistKeySet) 'Sti til SSL certifikat og password til at installere dette
store.Add(certificate)
'Opret en manager og en config til oprettelse af site
Using manager As New ServerManager
Dim config As Microsoft.Web.Administration.Configuration = manager.GetApplicationHostConfiguration()
'Opret site i IIS med det valgte certifikat
Dim site As Site = manager.Sites.Add("MyControl", "*:443:webmail.jcdhotel.dk", "C:\inetpub\wwwroot\MyControl", certificate.GetCertHash())
'Kræv SSL
Dim accessSection As Microsoft.Web.Administration.ConfigurationSection = config.GetSection("system.webServer/security/access", "MyControl")
accessSection("sslFlags") = "Ssl"
'Opret en applicationpool specifikt til MyControl og sæt denne til default
manager.ApplicationPools.Add("MyControl")
site.ApplicationDefaults.ApplicationPoolName = "MyControl"
'Luk store
store.Close()
'Gem ændringer og revert impersonation
manager.CommitChanges()
context.Undo()
End Using
End Sub问题就在眼前
Dim site As Site = manager.Sites.Add("MyControl", "*:443:webmail.jcdhotel.dk", "C:\inetpub\wwwroot\MyControl", certificate.GetCertHash())我已经习惯了C#和你如何转义字符串。所以我错误地插入了一个额外的\使这条线看起来像这样
Dim site As Site = manager.Sites.Add("MyControl", "*:443:webmail.jcdhotel.dk", "C:\\inetpub\wwwroot\MyControl", certificate.GetCertHash())
https://stackoverflow.com/questions/20659120
复制相似问题