【发布时间】:2018-08-15 11:28:13
【问题描述】:
我有一个用 c# 编写的 ASP CORE 2.1 网站,它在 IIS express 中完美运行并托管在 azure 上。但是当我尝试自己在本地 IIS 上托管它或者只是从 IIS 中的 Visual Studio 运行它(不是 express)时,它不起作用。我明白了 无法访问此站点 localhost 拒绝连接。 已经敲了我的头两天了,我离得更近了。请帮忙。
添加细节:
程序长这样(使用我今天添加的红隼)
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseKestrel()
.UseIISIntegration()
.Build();
}
这样开始
public class Startup
{
public IConfiguration Configuration { get; set; }
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddIdentity<ApplicationUser, IdentityRole>(config => { config.SignIn.RequireConfirmedEmail = true; })
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
services.AddTransient<IEmailSender, EmailSender>();
services.AddSingleton(_ => Configuration);
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
services.AddMvc();
services.Configure<AuthMessageSenderOptions>(Configuration);
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseBrowserLink();
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseAuthentication();
app.UseHttpsRedirection();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
}
认为它与安全有关。昨晚我创建并信任本地开发证书...不确定我做对了但它在那里...我是否必须以某种方式告诉我的网站专门寻找它?
正如我所说,IIS express 完美,Azure 完美,所以我不知道还能做什么。我在这里问,因为我很难过,不要偷懒。我已经安装了 IIS 软件,重新启动,安装了正确的运行时主机软件,重新启动。
补充,发现这是日志:
警告:Microsoft.AspNetCore.DataProtection.Repositories.EphemeralXmlRepository[50] 使用内存存储库。密钥不会被持久化到存储中。
警告:Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[59] 用户配置文件和 HKLM 注册表均不可用。使用临时密钥存储库。应用程序退出时,受保护的数据将不可用。
警告:Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35] 未配置 XML 加密器。密钥 {cfc3f092-a4fc-4b5b-9a64-e7d35b02feff} 可以以未加密的形式保存到存储中。 托管环境:生产 内容根路径:D:\IIS\SALUSUAVWEBAPP 现在收听:http://127.0.0.1:6396 申请开始。按 Ctrl+C 关闭。
警告:Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware[3] 无法确定重定向的 https 端口。
我现在正在调查这件事……是这个原因还是只是对某些不是我真正问题的事情的警告?
【问题讨论】:
-
你在你的电脑上做了什么才能让它工作?你关注the documentation on hosting ASP.NET Core on IIS了吗?您采取了哪些具体步骤?此外,即使是微软也表示尝试从 Visual Studio 在 IIS 上运行 ASP.NET Core 无法正常工作
-
我遵循了这些步骤。如果我不能在 IIS 中托管,您知道如何在本地托管它,以便我可以从我的机器上对其进行测试,并让其他人不在我的机器上进行测试吗?在我准备好上线之前,它将为我节省一大笔天蓝色的成本
-
如果您可以在 Azure 上的 免费 实例上使用它,它可以为您节省多少?而且你当然没有遵循每一步,因为这些都很好。
-
我很确定我遵循了每一步,现在几次。我有一个大型数据库,所以在 azure 上托管很昂贵,我有一个开发许可证,所以我可以用它在本地进行测试和开发。
-
因为许多其他人(包括我)可以按照 Microsoft 文档在 IIS 上本地运行 ASP.NET Core,所以如果您不打算通过编辑问题来显示更多详细信息,则不可能得到答复。
标签: c# asp.net iis asp.net-core