如何将规则添加到 *.csproj 中的 .net 核心项目
How to add rules to .net core project in *.csproj
我想向 .net 核心项目添加规则。
在 .net 普通项目中,我可以直接编辑 web.config 文件
实际上我需要在.net核心项目中实现这个
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\RazorWeb.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="OutOfProcess" />
</system.webServer>
</location>
<system.webServer>
<rewrite>
<!---START:ADD THIS RULES-->
<rules>
<rule name="httpTohttps" stopProcessing="true">
<match url="^(.*)$" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>
</rules>
<!---END:ADD THIS RULES-->
</rewrite>
</system.webServer>
</configuration>
好吧,自从我在 .net 核心中介绍以来,我注意到模板项目没有随这个 .config 文件一起提供,但是模板使用 .csproj 文件和 .json 文件来添加配置等。 .
主要思想是如何在 .net 核心项目中实现这一点,我在不同的网站上搜索,微软的文档在这方面对我来说并不完全清楚,我找到的最接近的是这个
https://roslyn-analyzers.readthedocs.io/en/latest/config-analyzer.html
但对我不起作用
看到这个。您应该使用中间件而不是 web.config 来强制执行 https。 https://docs.microsoft.com/en-us/aspnet/core/security/enforcing-ssl?view=aspnetcore-3.1&tabs=visual-studio
您仍然可以在需要时在 .NET Core 项目中包含 web.config 文件。事实上,当您点击发布时会生成一个,而您还没有一个,这可以为您提供一个制作自定义的起点。
执行以下操作之一:
- 在添加项目中添加“Web 配置”模板,就像这个答案一样,它很好地包含了一个屏幕截图:
- 改为创建您自己的 web.config,并将其设置为始终复制到输出目录。这将取代发布时的 auto-generated。
特别是关于这个文件有很多令人困惑的信息。这是一个体面的问题和体面的答案。 Am confused about web.config in .NET Core
我想向 .net 核心项目添加规则。 在 .net 普通项目中,我可以直接编辑 web.config 文件
实际上我需要在.net核心项目中实现这个
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\RazorWeb.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="OutOfProcess" />
</system.webServer>
</location>
<system.webServer>
<rewrite>
<!---START:ADD THIS RULES-->
<rules>
<rule name="httpTohttps" stopProcessing="true">
<match url="^(.*)$" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>
</rules>
<!---END:ADD THIS RULES-->
</rewrite>
</system.webServer>
</configuration>
好吧,自从我在 .net 核心中介绍以来,我注意到模板项目没有随这个 .config 文件一起提供,但是模板使用 .csproj 文件和 .json 文件来添加配置等。 .
主要思想是如何在 .net 核心项目中实现这一点,我在不同的网站上搜索,微软的文档在这方面对我来说并不完全清楚,我找到的最接近的是这个
https://roslyn-analyzers.readthedocs.io/en/latest/config-analyzer.html 但对我不起作用
看到这个。您应该使用中间件而不是 web.config 来强制执行 https。 https://docs.microsoft.com/en-us/aspnet/core/security/enforcing-ssl?view=aspnetcore-3.1&tabs=visual-studio
您仍然可以在需要时在 .NET Core 项目中包含 web.config 文件。事实上,当您点击发布时会生成一个,而您还没有一个,这可以为您提供一个制作自定义的起点。
执行以下操作之一:
- 在添加项目中添加“Web 配置”模板,就像这个答案一样,它很好地包含了一个屏幕截图:
- 改为创建您自己的 web.config,并将其设置为始终复制到输出目录。这将取代发布时的 auto-generated。
特别是关于这个文件有很多令人困惑的信息。这是一个体面的问题和体面的答案。 Am confused about web.config in .NET Core