gpt4 book ai didi

c# - 在 IIS 上更改 targetFramework

转载 作者:行者123 更新时间:2023-11-30 18:24:55 25 4
gpt4 key购买 nike

在我的 ASP.NET 5 应用程序中,由于 HtmlHelper,我生成了一个下拉列表。除了在生产环境中,在本地主机上一切正常,我们有一个 500 服务器错误。

enter image description here

我能够在 github 上找到执行的转换,它被执行到 MVC 库中,精确到 DefaultHtmlGenerator 类中:

enter image description here

当我们想要根据传入参数的 SelectList 呈现下拉列表时执行此转换。

我们可以看到注释指定我们必须至少使用 4.5 版本的框架。在堆栈跟踪的末尾,我们看到了生产中使用的框架版本:

enter image description here

但是,我们服务器上安装的是4.5版本,我尝试在projet的wwwroot中插入一个web.config文件来强制目标框架:

enter image description here

但它不起作用,我们在 project.json 中正确指示了我们要使用的框架:

enter image description here

所以我的问题是:我们可以使用compilation targetFramework="4.5"httpRuntime targetFramework="4.5" 来强制 IIS 使用 4.5 版吗?

最佳答案

注意

您正在尝试在 IIS 托管代码中运行。你不能那样做。 IIS 不再管理进程。基本上,IIS 将运行一个 EXE 并将请求转发给它。就是这样。

检查以下过程以将 DNX 应用程序正确部署到 IIS。或者更好的是,阅读此处的文档:http://docs.asp.net/en/latest/publishing/iis.html


要求

  • Windows 7 或更高版本
  • Windows Server 2008 R2 或更高版本
  • 安装IIS

程序

首先,确保您的 IIS ( x86/x64 ) 中安装了 HTTP 平台处理程序。

将您的应用程序发布到文件系统并将 \artifacts\bin\MyWebApp\Release\Publish 文件夹的内容复制到您的 IIS 服务器。

在配置您的应用程序时,将您复制过来的 wwwroot 文件夹作为目标。

现在您需要解锁 system.webServer/handlers 部分,该部分可以在 Configuration Editor 下服务器节点上的 IIS 管理器中找到。搜索正确的部分并从右侧的操作 Pane 中将其解锁。

确保应用程序池设置为No Managed Code。 DNX 作为外部进程运行。 IIS 不需要知道它当前正在运行什么。

最后,创建一个包含以下内容的web.config:

<configuration>
<system.webServer>
<handlers>
<add name="httpplatformhandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />
</handlers>
<httpPlatform processPath="..\approot\web.cmd" arguments="" stdoutLogEnabled="false" stdoutLogFile="..\logs\stdout.log" startupTimeLimit="3600"></httpPlatform>
</system.webServer>
</configuration>

它应该在那个时候运行。


Source

关于c# - 在 IIS 上更改 targetFramework,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30668632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com