簡體   English   中英

IIS 6.0 DirectoryEntry ScriptMaps屬性並設置.Net版本

[英]IIS 6.0 DirectoryEntry ScriptMaps property and set .Net version

創建網站后,我注意到它將asp.net版本設置為1.1。 我想在代碼中將其更改為版本2.0.50727。 我發現ScriptMaps屬性中包含所有文件擴展名和代碼映射的字符串列表。 但是我還沒有弄清楚如何更改連接到.net的所有值? 還是有辦法告訴它將其他版本與.invoke一起使用?

DirectoryEntry sited = new DirectoryEntry(string.Format("IIS://localhost/w3svc/{0}/Root", websiteID.ToString()));
sited.Properties["AccessRead"].Add(true);

PropertyValueCollection testScriptMap = sited.Properties["ScriptMaps"];

object[] allValues = (object[])testScriptMap.Value;
object[] newValues = new object[allValues.Length];
string oldVersion = "v1.1.4322";
string newVersion = "v2.0.50727";
for (int i = 0; i < allValues.Length; i++)
{
    if (allValues[i] is string)
    {
        string temp = allValues[i] as string;
        if (temp.Contains(oldVersion))
        {
            newValues[i] = temp.Replace(oldVersion, newVersion);
        }
        else
        {
            newValues[i] = allValues[i];
        }
    }
    else
    {
        newValues[i] = allValues[i];
    }
}
testScriptMap.Value = newValues;            

sited.CommitChanges();

經過反復嘗試,我找到了解決方案。 我將創建的站點中的所有對象都帶入並制作了一個副本,在其中更改了路徑字符串的版本部分。 然后,我將scriptMaps對象的value屬性設置為指向新的更新對象數組。

一種簡單的方法是執行“ aspnet_regiis -i ”。 aspnet_regiis.exe文件位於C:\\WINDOWS\\Microsoft.NET\\Framework\\v2.0.50727\\aspnet_regiis.exe

或者,您可以采用困難的方式,並查看有關修改IIS Metabase的文章。

對我來說,采取更艱難的方法比簡單的方法更酷!

以下命令將安裝與該工具關聯的ASP.NET版本,並更新所有現有ASP.NET應用程序的腳本映射。 請注意,僅當前映射到ASP.NET早期版本的應用程序會受到影響。

Aspnet_regiis -i

Aspnet_regiis.exe在以下路徑下:

C:\\ WINDOWS \\ Microsoft.NET \\ Framework \\“您要更改為的點網版本”

您的情況將在v2.0.50727下:

C:\\ WINDOWS \\ Microsoft.NET \\框架\\ V2.0.50727

來源: ASP.NET IIS注冊工具

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM