IIS7部署 - 复制'system.web.extensions / scripting / scriptResourceHandler'部分
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IIS7部署 - 复制'system.web.extensions / scripting / scriptResourceHandler'部分相关的知识,希望对你有一定的参考价值。
尝试在IIS7中的默认应用程序池上部署.net 3.5网站时,框架部分设置为4.0,我收到以下错误。
定义了一个重复的'system.web.extensions / scripting / scriptResourceHandler'部分。
评论违规行并没有帮助。关于我需要做什么或看什么的任何指示?
如果您的计划是部署到具有在.net 4.0中运行的应用程序池的IIS,则需要清理包含指向.net 3.5的所有部分定义的web.config。这种失败的原因是因为这些部分定义已经包含在.NET 4.0的根web.config中(请参阅%windir% microsoft.net framework v4.0.30319 config machine.config),其中包含所有系统。 web.extensions已经声明了。
另一个快速解决方法是将应用程序池设置为2.0,就像您的开发机器似乎一样。
另一种避免此问题可以帮助其他人的方法是将.net Web服务构建到4.0或更高版本(如果可能)。
在我的情况下,我有2个不同的应用程序共享相同的应用程序池第一个使用.net4.5框架,新的框架使用2.0。当我将第二个应用程序更改为它自己的应用程序池时,它开始正常工作而没有更改web.config。
我的决议有点愚蠢。
- 我安装了.net 3.5的副本
- 创建了另一个应用程序池并选择了.net 3.5(在下拉列表中显示为2.0.5077)
- 将我的网站添加到该应用程序池中
- 回收旧的和新的池,网站开始工作。
它归结为我没有安装3.5,即使打开Windows功能说我做了,并创建另一个应用程序池使用。我希望这有助于其他人。
在我的情况下,我想手动添加网址重写规则,但无法看到明显的错误(我错过了qazxsw poi标签):
错误的代码:
<rules>
正确的代码(带规则标签):
<rewrite>
<rule name="some rule" stopProcessing="true">
<match url="some-pattenr/(.*)" />
<action type="Redirect" url="/some-ne-pattenr/{R:1}" />
</rule>
</rewrite>
</system.webServer>
</configuration>
我已经解决了它,执行以下步骤:
- 我在IIS中创建了一个新的应用程序组。
- 打开出现此问题的站点或Web应用程序的高级设置。
- 并设置新应用程序的组。
这里有这些步骤的图像:
<rewrite>
<rules>
<rule name="some rule" stopProcessing="true">
<match url="some-pattenr/(.*)" />
<action type="Redirect" url="/some-ne-pattenr/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
此错误消息似乎出现在各种情况下。
就我而言,在我的应用程序的Web.Config文件之上,我在根文件夹(C: Inetpub www.root)中有一个额外的Web.Config文件。经过一些测试后可能会离开那里,我已经忘记了所有这些,并且无法弄清楚问题是什么。
删除它解决了我的问题。
这对你来说可能是错误的答案。但这是我试图解决问题时谷歌的第一次打击。照这样说...
我也发生了同样的错误消息,但是当我尝试通过Visual Studio运行IIS Express时。
我的问题是我错误地将我的applicationhost.config提交给了TFS。后来当我在获得最新提交后尝试在我的笔记本电脑上运行项目时。那是错误发生的时候。
我发现虚拟目录路径错误。
希望这能帮到别人!
这是我的第一篇文章,所以要温柔:)
对我来说,解决方案是将默认应用程序池中的应用程序池中的.NET框架版本从v4.0更改为v2.0:
如果像我一样,您需要定位v4但只能使用.net 3.5构建,请按照here指令操作。只需在web.config中替换<configSections>
的全部内容:
<configSections>
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere"/>
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
</sectionGroup>
</sectionGroup>
</sectionGroup>
将应用程序池设置为2.0,我做到了并且工作了。
问题是因为默认池位于.net 4.0解决方案:输入IIS服务器服务器右侧设置应用程序组值。![在此处输入图像描述] [1]并更改框架的视图![输入图像说明这里] [2]
有了这个,您可以在安装SharePoint 2010管理中心时解决问题
-----通过谷歌翻译-----
问题是因为池是默认的。 Net 4.0解决方案:输入服务器IIS管理器以在应用程序池的右侧设置值。 [在此处输入图像说明] [1]并更改框架版本![在此输入图像说明] [2]
这应该可以解决安装SharePoint管理中心2010的问题
我的应用程序是一个ASP.Net3.5应用程序(使用框架的第2版)。创建ASP.Net3.5应用程序时,Visual Studio会自动将scriptResourceHandler添加到web.config中。更新版本的.Net将其放入machine.config中。如果您使用版本4应用程序池运行ASP.Net 3.5应用程序(取决于安装顺序,这是默认的应用程序池),您将收到此错误。
当我转向使用2.0版应用程序池时。错误消失了。然后我在服务WCF .svc时不得不处理错误:
HTTP错误404.17 - 未找到请求的内容似乎是脚本,静态文件处理程序不会提供
经过一番调查,似乎我需要注册WCF处理程序。使用以下步骤:
- 打开Visual Studio命令提示符(以管理员身份)
- 导航到“C: Windows Microsoft.NET Framework v3.0 Windows Communication Foundation”
- 运行servicemodelreg -i
Necromancing。 如果您的web.config中没有任何system.web.extensions配置节或处理程序/模块条目,则会导致此问题,因为您/其他人在隐藏时复制了VisualStudio-Project(2013/2015/2017) - 未隐藏的文件。
因此,它不仅会复制.git,还会复制包含IIS-Express applicationhost.config文件的.VS
,该文件指向不存在的路径中的web.config文件(或者更糟糕的是,存在的路径,但是没有相同的内容)...
解: 删除.VS文件夹中的applicationhost.config文件。 或者只是完全删除.VS文件夹。 Visual Studio将重新创建它。
Apparently, other have (had) this problem。他们在Framework 4.0中重建。你能?
还有,see this about making sure your IIS is fresh。
在我的情况下,它发生在我将整个解决方案(使用名为Target Framework Migrator的扩展)转换为4.6.2之后,但最终撤消了更改并返回到3.5(解决方案由TFS版本化)。为了解决这个问题,我将有问题的项目(使用IIS Express运行)转换为4.6.2然后再转换为3.5。
以上是关于IIS7部署 - 复制'system.web.extensions / scripting / scriptResourceHandler'部分的主要内容,如果未能解决你的问题,请参考以下文章
用户'IIS APPPOOL ASP.NET v4.0'登录失败
在 IIS7 上部署 Silverlight Lync 应用程序