1

以下に何かひどく間違っているところがありますが、何が原因なのかわかりません。Web サイトはチャームのように作成されますが、それに関連付ける必要があるアプリケーション プールはまったく作成されません。

public string Create(string sitename)
        {
            try
            {
                using (ServerManager serverMgr = new ServerManager())
                {
                    string strhostname = sitename + "." + domain;
                    string bindinginfo = ":80:" + strhostname;

                    if (!IsWebsiteExists(serverMgr.Sites, strhostname))
                    {
                        Site mySite = serverMgr.Sites.Add(strhostname, "http", bindinginfo, "C:\\admin\\" + domain);

                        ApplicationPool newPool = serverMgr.ApplicationPools.Add(strhostname);
                        newPool.ManagedRuntimeVersion = "v4.0";
                        newPool.ManagedPipelineMode = ManagedPipelineMode.Integrated;

                        serverMgr.CommitChanges();
                        return "Website  " + strhostname + " added sucessfully";
                    }

                    else
                    {
                        return "Name should be unique, " + strhostname + " already exists.";
                    }
                }
            }
            catch (Exception ex)
            {
                return ex.Message;
            }
        }

ここで何が間違っていますか?

4

2 に答える 2

1

アプリ プール名に句読点が含まれているとは思いません。アプリ プール名の一部としてドメインを追加するのは、少し変わっています。おそらくそれがソースです。ここでは、コマンド ラインで同じことを行うための構文とともに、基本的な方法について説明しますappcmd。コマンド ラインでアプリ プールを作成して、パラメーターが受け入れられるかどうかを確認してください。

.NET 4.0 を使用するアプリケーション プールを作成する

于 2016-01-23T22:23:53.657 に答える
1

ここで起こっていることは、サイトを作成すると、サイトが自動的に に割り当てられるということDefaultAppPoolです。

必要なことは、サイトのルート Application( /) を置き換えて、作成したばかりのアプリケーション プールを指すようにすることです。

これを行う最も簡単な方法は、最初に新しいサイトのApplicationコレクションをクリアしてから、アプリケーション プールを指す新しいルートアプリケーションを追加することです。

コード スニペットを取得して、次のように変更しました。

Site mySite = serverMgr.Sites.Add(strhostname, "http", bindinginfo, "C:\\admin\\" + domain);

// Clear Applications collection
mySite.Applications.Clear();

ApplicationPool newPool = serverMgr.ApplicationPools.Add(strhostname);
newPool.ManagedRuntimeVersion = "v4.0";
newPool.ManagedPipelineMode = ManagedPipelineMode.Integrated;

// Create new root app and specify new application pool
Application app = mySite.Applications.Add("/", "C:\\admin\\" + domain);
app.ApplicationPoolName = strhostname;

serverMgr.CommitChanges();
于 2016-01-24T07:46:22.257 に答える