1

当我想使用 servermanager 创建新服务器时遇到麻烦。

这是我的代码



    ServerManager sm = new ServerManager();
    Site s = sm.Sites.Add("NEWSERVER", path, 80);

    BindingCollection bindingCollection = s.Bindings;
    bindingCollection.Clear();

    Binding binding = s.Bindings.CreateElement("binding");
    binding["protocol"] = "https";
    binding["certificateHash"] = "‎thumprint value";
    binding["certificateStoreName"] = "MY";
    binding["bindingInformation"] = string.Format("{0}:{1}:{2}", "*", "443", "subdomain.url.com");
    bindingCollection.Add(binding);

    Binding binding2 = s.Bindings.CreateElement("binding");
    binding2["protocol"] = "http";
    binding2["bindingInformation"] = string.Format("{0}:{1}:{2}", "*", "80", "subdomain.url.com");
    bindingCollection.Add(binding2);

    s.ServerAutoStart = true;

    ApplicationPool a = sm.ApplicationPools.Add("NEWSERVER");
    a.ManagedRuntimeVersion = "v4.0";
    s.ApplicationDefaults.ApplicationPoolName = "NEWSERVER";
    sm.CommitChanges();

当我运行它时,它会创建服务器 + 绑定,但会出现以下错误:

“访问被拒绝。(来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))”

这在 sm.CommitChnages() 运行时发生。

我无法弄清楚我无法访问哪些内容。有任何想法吗?

4

2 回答 2

0

您必须使用本地管理员帐户运行这段代码。

对于 ASP.NET 应用程序,您的选择是

  1. 使用 WindowsIdentity 模拟本地管理员。
  2. 或者在本地管理员帐户下运行应用程序池。

他们都有一些你需要注意安全方面的事情,

http://msdn.microsoft.com/en-us/library/ff647404.aspx

于 2012-05-30T09:43:14.797 回答
0

我在尝试动态添加绑定时遇到了同样的问题。我刚刚以管理员身份运行应用程序

它对我有用。

于 2016-08-25T03:53:30.887 回答