【问题标题】:An error occurred while starting the application, once I run my ASP.NET Core project on IIS在 IIS 上运行 ASP.NET Core 项目后,启动应用程序时发生错误
【发布时间】:2022-01-12 19:22:24
【问题描述】:

我想将 ASP.NET Core 3.1 应用程序发布到 IIS。

我遇到了一些问题。我添加了dotnet-hosting-3.1.3-win 并将应用程序池更改为“无托管代码”。

我在发布文件夹中的web.config 看起来像这样

<?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=".\Mehmanpazir.dll" 
                        stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" 
                        hostingModel="OutOfProcess" />
        </system.webServer>
    </location>
</configuration>
<!--ProjectGuid: 9df390e8-96df-4f6c-bc6b-f5fc9306940e-->

最终我无法解决这个问题。

启动应用程序时出错。

我的日志是:

关键:Microsoft.AspNetCore.Hosting.Diagnostics[6] 应用程序启动异常 System.Data.SqlClient.SqlException (0x80131904):用户 'IIS APPPOOL\campaign' 登录失败。在 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity 身份、SqlConnectionString 连接选项、SqlCredential 凭证、对象 providerInfo、字符串 newPassword、SecureString newSecurePassword、布尔重定向用户实例、SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling,字符串访问令牌)在 System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions 选项,DbConnectionPoolKey poolKey,对象 poolGroupProviderInfo, DbConnectionPool 池,DbConnection owningConnection, DbConnectionOptions 用户选项)在 System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool 池,DbConnection owningObject,DbConnectionOptions 选项, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) 在 System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal 旧连接)在 System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal 旧连接)在 System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean 允许创建、布尔型仅OneCheckConnection、DbConnectionOptions userOptions,DbConnectionInternal& 连接)在 System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject,TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal&amp; connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource1 重试,DbConnectionOptions 用户选项、DbConnectionInternal oldConnection、DbConnectionInternal& 连接)在 System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection 外部连接,DbConnectionFactory 连接工厂, TaskCompletionSource1 retry, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource1 重试,DbConnectionOptions userOptions) 在 System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource1 retry) at System.Data.SqlClient.SqlConnection.Open() at ElmahCore.Sql.SqlErrorLog.CreateTableIfNotExists() at ElmahCore.Sql.SqlErrorLog..ctor(String connectionString) at ElmahCore.Sql.SqlErrorLog..ctor(IOptions1 选项) --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite,RuntimeResolverContext 上下文)在 Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(ServiceCallSite callSite, TArgument 参数)在 Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite,ServiceProviderEngineScope 范围)在 Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine.c__DisplayClass1_0.b__0(ServiceProviderEngineScope 范围)在 Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.GetService(类型 serviceType, ServiceProviderEngineScope serviceProviderEngineScope)
在 Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(类型 服务类型)在 Microsoft.Extensions.Internal.ActivatorUtilities.ConstructorMatcher.CreateInstance(IServiceProvider 提供者)在 Microsoft.Extensions.Internal.ActivatorUtilities.CreateInstance(IServiceProvider 提供者,类型 instanceType,Object[] 参数)在 Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.c__DisplayClass4_0.b__0(RequestDelegate 下一个)在 Microsoft.AspNetCore.Builder.ApplicationBuilder.Build()
在 Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken 取消令牌) ClientConnectionId:c07813a4-0039-47e3-b476-6fdccf2d18f1 错误 编号:18456,状态:1,类别:14 信息:Microsoft.Hosting.Lifetime[0] 现在收听:http://127.0.0.1:2942 信息:Microsoft.Hosting.Lifetime[0] 申请开始。按 Ctrl+C 关闭。信息:Microsoft.Hosting.Lifetime[0] 托管环境:生产信息:Microsoft.Hosting.Lifetime[0] 内容根路径:E:\development\Mehmanpazir\teachwebapi\bin\Release\publish

【问题讨论】:

标签: c# asp.net-core iis asp.net-core-3.1 window-server


【解决方案1】:

我找到了解决问题的方法。 我在连接字符串中使用了windows身份验证,发行者无法连接到我的数据库。更改连接以使用用户名和密码连接后,一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-14
    相关资源
    最近更新 更多