我将 dotnet core 2.2 web api 应用程序托管到本地 IIS。当我运行托管站点时,站点正在运行。我正在尝试从 angular 登录,但它不起作用。
它说访问 XMLHttpRequest at 'http://192.168.43.143:100/Auth/Login' from origin 'http://localhost:4200' has been Blocked by CORS policy: No 'Access-Control-Allow-Origin' header存在于请求的资源上。
注意:它在本地工作。没有发生 CORS 政策问题
我在 ConfigureServices 中添加了 cors 策略并提供中间件来添加 UseCors()。
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(c =>
{
c.AddPolicy("AllowOrigin", options => options.AllowAnyHeader()
.AllowAnyMethod().AllowAnyOrigin()
.SetIsOriginAllowed((host) => true).AllowCredentials());
});
services.Configure<MvcOptions>(options => {
options.Filters.Add(new CorsAuthorizationFilterFactory("AllowOrigin"));
});
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseCors("AllowOrigin");
app.UseMvc();
}
Run Code Online (Sandbox Code Playgroud)
我安装的软件详细信息如下,
我在Windows 2016上使用IIS 10
每当我更新我的SSL证书并将其应用于绑定IIS时,不会使用该证书,而是继续使用旧证书.
我迄今为止所尝试过的事情 -
重新启动Windows确实每次都解决它.
运行由下面的文件创建的docker容器时出错
FROM microsoft/iis
RUN mkdir C:\site
RUN powershell -NoProfile -Command \
Import-module IISAdministration; \
New-IISSite -Name "Site" -PhysicalPath C:\site -BindingInformation "*:8080:"
Add dist\ C:\site
ENV COMPOSE_CONVERT_WINDOWS_PATHS = 1
EXPOSE 80
Run Code Online (Sandbox Code Playgroud)
然后:
docker run -p 4000:80 app-temp1
Run Code Online (Sandbox Code Playgroud)
ERROR ( message:Cannot find requested collection element. )
Applied configuration changes to section "system.applicationHost/applicationPools" for "MACHINE/WEBROOT/APPHOST" at configuration commit path "MACHINE/WEBROOT/APPHOST"
有没有可以用来验证web.config的工具?我问的原因是该文件似乎是有效的XML,而IIS却在抱怨该文件无效。没有解释或指示原因。
提前致谢。
编辑:
HTTP错误500.19-内部服务器错误无法访问请求的页面,因为该页面的相关配置数据无效。详细的错误信息:模块IIS Web核心通知未知的处理程序尚未确定错误代码0x8007000d配置错误
配置文件\?\ C:\ DignityFiles \ Source \ simplicity \ Simplicity \ web.config请求的URL http://simplicity-local.dignitytest。 co.uk:80/
物理路径
登录方法尚未确定登录用户尚未确定配置来源:
-1:0
更多信息:如果在读取Web服务器或Web应用程序的配置文件时遇到问题,则会发生此错误。在某些情况下,事件日志可能包含有关导致此错误的原因的更多信息。
查看更多信息»[这将带您进入“ https://support.microsoft.com/en-gb/help/942055/-http-error-500-19-error-when-you-open-an-iis-7 -0-网页 “]
我正在使用 IIS 10.0 并且 ASP.NET 功能部分未显示
我的环境:Windows Server 2016
我的问题是类似的问题张贴在这里:没有asp.net的IIS 7.5功能并没有显示ASP.NET在IIS 7.5功能
这些帖子中提到的“添加功能”修复不适用,因为它已经正确配置(见图)
我正在尝试提供一个带有网络表单的网站。这是一个从框架 3.5 转换到 4.6.1 的旧项目。我收到的错误消息是:
HTTP 错误 404.17 - 未找到 请求的内容似乎是脚本,静态文件处理程序不会提供服务。最可能的原因:请求与通配符 MIME 映射匹配。该请求被映射到静态文件处理程序。如果有不同的先决条件,请求将映射到不同的处理程序。
经过一番挖掘,我们发现了一些建议,以确保安装所有 .NET Framework 功能。
在过去,最重要的是使用 aspnet_regiis -i 重新注册 ASP.Net,但这在我的操作系统上不起作用。所以我也尝试了这个命令:
dism /online /enable-feature /featurename:IIS-ASPNET45 /all
结果说操作成功完成,但仍然不起作用。
我在 IIS 的 ISAPI 过滤器中发现奇怪的是没有 ASP.Net 4 的条目,只有 ASP.NET 2。
我还能尝试什么?
星期四晚上,我正在开发一个用 ASP.NET Core 2.1 构建的项目(正在为 ASP.NET Core 2.2 做准备),该项目在本地 IIS 10.0(不是IIS Express)上运行,并且能够毫无问题地运行它。星期五早上,进入办公室后,每次尝试在 Visual Studio 中运行解决方案时,我都会遇到以下错误:
当我打开 [file_name].html 时,我得到了响应:
当我打开事件查看器时,我得到了响应:
我有:
我在IIS上托管了我的 ASP.NET Core 应用程序(使用文件夹内发布方法)。我尝试创建自己的web.config文件以查看客户端的详细错误消息。所以我添加了文件web.config:
<configuration>
<system.web>
<customErrors mode="Off" />
</system.web>
<system.webServer>
<httpErrors errorMode="Detailed" />
</system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)
我重新启动 IIS 后,什么也没发生。客户端仍然收到默认错误:
我可以使用文件web.config以某种方式获取有关错误的其他信息吗?
我已经在asp.net核心网站中实现了IHostedService。它运作良好,但问题是我希望在托管服务器启动或IIS服务重新启动时启动它,但除非有第一个对网站的请求进入,否则它不会启动。
更新1: @Arthur建议的“应用程序初始化模块”没有帮助。既不在站点级别,也不在服务器级别。
我使用的配置:
<applicationInitialization
doAppInitAfterRestart="true"
skipManagedModules="false"
remapManagedRequestsTo="init.htm">
<add initializationPage="/init.htm" hostName="localhost"/>
</applicationInitialization>
Run Code Online (Sandbox Code Playgroud)
更新2:这是我实现接口的方式
internal class PaymentQueueService : IHostedService, IDisposable
{
private readonly ILogger _logService;
private Timer _timerEnqueue;
public PaymentQueueService(ILogger logService)
{
_logService = logService;
}
public Task StartAsync(CancellationToken cancellationToken)
{
_logService.LogInformation("Starting processing payments.");
_timerEnqueue = new Timer(EnqueuePayments, null, TimeSpan.Zero,
TimeSpan.FromSeconds(10));
return Task.CompletedTask;
}
private void EnqueuePayments(object state)
{
_logService.LogInformation("Enqueueing Payments.");
}
public Task StopAsync(CancellationToken cancellationToken)
{
_logService.LogInformation("Stopping processing …Run Code Online (Sandbox Code Playgroud) 我在使用 IIS 10 和 .Net 发布大文件时遇到问题。我收到的错误代码来自 IIS:
HTTP Error 413.1 - Request Entity Too Large
The request filtering module is configured to deny a request that exceeds the request content length.
Run Code Online (Sandbox Code Playgroud)
我在网上找到了很多解决方案都不起作用。以下是我对 IIS 所做的更改。这些更改是在托管我遇到此问题的应用程序的默认网站下完成的。对默认网站所做的更改已传播到其中包含的所有网站。
我还将 uploadReadAheadSize 设置为 2147483647:
我尝试上传的文件大小为 97 MB。我缺少什么?
iis-10 ×10
iis ×7
asp.net-core ×3
.net-core ×2
asp.net ×2
.net ×1
c# ×1
docker ×1
powershell ×1
ssl ×1
web-config ×1
webforms ×1