繁体   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