我有一个WebAssembly应用程序,如果用户试图通过http访问网页,它将自动重定向到https。
对于其他非WASM站点,我将在IIS配置中这样做,使用"URL重写“将任何此类调用重定向到https等效。这些规则直接存储在web文件夹中的web.config文件中。

但是,当向IIS发布WebAssembly应用程序时,Visual会创建自己的web.config文件,其中包含正确运行/路由所需的其他url重写规则:


在发布到IIS之后,我可以进入并创建我的"http -> https“规则,然后将其添加到先前生成的web.config文件中。

然后,将http重定向到https,这是一个不错的选择。
但是,每次我向IIS发布应用程序时,这个web.config文件都会被覆盖,而我的https规则也会丢失。
是否有一种方法可以在Visual项目中定义此重定向规则,以便自动将其包含在自动生成的web.config中?
如有任何指导,将不胜感激。
发布于 2021-03-10 22:24:03
<Target Name="CopyWebConfigOnPublish" AfterTargets="Publish">
<Copy SourceFiles="web.config" DestinationFolder="$(PublishDir)" />
</Target>应该能起作用。原始源这里.
发布于 2021-10-28 09:08:37
在项目目录的根目录中创建一个新的web.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<staticContent>
<remove fileExtension=".blat" />
<remove fileExtension=".dat" />
<remove fileExtension=".dll" />
<remove fileExtension=".json" />
<remove fileExtension=".wasm" />
<remove fileExtension=".woff" />
<remove fileExtension=".woff2" />
<mimeMap fileExtension=".blat" mimeType="application/octet-stream" />
<mimeMap fileExtension=".dll" mimeType="application/octet-stream" />
<mimeMap fileExtension=".dat" mimeType="application/octet-stream" />
<mimeMap fileExtension=".json" mimeType="application/json" />
<mimeMap fileExtension=".wasm" mimeType="application/wasm" />
<mimeMap fileExtension=".woff" mimeType="application/font-woff" />
<mimeMap fileExtension=".woff2" mimeType="application/font-woff" />
</staticContent>
<httpCompression>
<dynamicTypes>
<add mimeType="application/octet-stream" enabled="true" />
<add mimeType="application/wasm" enabled="true" />
</dynamicTypes>
</httpCompression>
<rewrite>
<rules>
<clear />
<rule name="Redirect to https" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" />
</rule>
<rule name="Serve subdir">
<match url=".*" />
<action type="Rewrite" url="wwwroot\{R:0}" />
</rule>
<rule name="SPA fallback routing" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
</conditions>
<action type="Rewrite" url="wwwroot\" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>并将下列行添加到项目文件中:
<PropertyGroup>
<PublishIISAssets>true</PublishIISAssets>
</PropertyGroup>https://stackoverflow.com/questions/66573753
复制相似问题