Sql server 从web服务器到SQL server的DMZ帐户应用程序池标识

Sql server 从web服务器到SQL server的DMZ帐户应用程序池标识,sql-server,authentication,asp.net-identity,impersonation,application-pool,Sql Server,Authentication,Asp.net Identity,Impersonation,Application Pool,我们的生产web应用程序有一个非常奇怪的问题。我们的web应用程序面向外部,使用DMZ帐户模拟应用程序池标识。然而,当用户试图登录应用程序时,我们会随机看到应用程序崩溃。我们得到一个异常,如下所示- 正如您所看到的,当调用authenticate方法时,我们得到一个失败,指示: 已通过身份验证:False 身份验证类型: 线程帐户名称:DMZ帐户 SQL Server似乎不允许asp.net应用程序池标识(即DMZ帐户)随机连接。现在这种情况间歇性地发生,并不总是这样。asp.net应用程序模拟

我们的生产web应用程序有一个非常奇怪的问题。我们的web应用程序面向外部,使用DMZ帐户模拟应用程序池标识。然而,当用户试图登录应用程序时,我们会随机看到应用程序崩溃。我们得到一个异常,如下所示-

正如您所看到的,当调用authenticate方法时,我们得到一个失败,指示:

已通过身份验证:False 身份验证类型:
线程帐户名称:DMZ帐户

SQL Server似乎不允许asp.net应用程序池标识(即DMZ帐户)随机连接。现在这种情况间歇性地发生,并不总是这样。asp.net应用程序模拟为池标识,但它通过SQL登录连接到SQL Server

最奇怪的是,如果我们从Visual Studio连接到生产服务器,它将连接到同一个生产SQL Server,那么生产站点将神奇地开始工作!就像Visual Studio模拟的本地域帐户解锁了生产DMZ帐户一样。

Exception information: 
    Exception type: NullReferenceException 
    Exception message: Object reference not set to an instance of an object.
   at eCertsFormsAdmin.ControllerBase.OnException(ExceptionContext filterContext)
   at System.Web.Mvc.ControllerActionInvoker.InvokeExceptionFilters(ControllerContext controllerContext, IList`1 filters, Exception exception)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.<BeginInvokeAction>b__22(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult)
   at System.Web.Mvc.Controller.<>c__DisplayClass1d.<BeginExecuteCore>b__18(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar)
   at System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar)
   at System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult)
   at System.Web.Mvc.MvcHandler.<>c__DisplayClass8.<BeginProcessRequest>b__3(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar)
   at System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)



Request information: 
    Request URL: https://appurl:443/Home/Authenticate?param={'AccessCode' :'demo', 'UserName' :'user'} 
    Request path: /Home/Authenticate 
    User host address: web server ip address 
    User:  
    Is authenticated: False 
    Authentication Type:  
    Thread account name: DMZ account 

Thread information: 
    Thread ID: 5 
    Thread account name: DMZ account
    Is impersonating: True 
    Stack trace:    at eCertsFormsAdmin.ControllerBase.OnException(ExceptionContext filterContext)
   at System.Web.Mvc.ControllerActionInvoker.InvokeExceptionFilters(ControllerContext controllerContext, IList`1 filters, Exception exception)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.<BeginInvokeAction>b__22(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult)
   at System.Web.Mvc.Controller.<>c__DisplayClass1d.<BeginExecuteCore>b__18(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar)
   at System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar)
   at System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult)
   at System.Web.Mvc.MvcHandler.<>c__DisplayClass8.<BeginProcessRequest>b__3(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar)
   at System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)


Custom event details: 

Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="ASP.NET 4.0.30319.0" />
    <EventID Qualifiers="32768">1309</EventID>
    <Level>3</Level>
    <Task>3</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2017-03-28T13:56:18.000000000Z" />
    <EventRecordID>425417</EventRecordID>
    <Channel>Application</Channel>
    <Computer>Web server</Computer>
    <Security />
  </System>
  <EventData>
    <Data>3005</Data>
    <Data>An unhandled exception has occurred.</Data>
    <Data>3/28/2017 9:56:18 AM</Data>
    <Data>3/28/2017 1:56:18 PM</Data>
    <Data>3accff4bebb74aa5823c9d05fe7ae5c0</Data>
    <Data>135</Data>
    <Data>4</Data>
    <Data>0</Data>
    <Data>/LM/W3SVC/6/ROOT-1-131351820594338174</Data>
    <Data>Full</Data>
    <Data>/</Data>
    <Data>C:\www\apppath\</Data>
    <Data>Web server</Data>
    <Data>
    </Data>
    <Data>6768</Data>
    <Data>w3wp.exe</Data>
    <Data>GTSDMZ\eValid</Data>
    <Data>NullReferenceException</Data>
    <Data>Object reference not set to an instance of an object.
   at eCertsFormsAdmin.ControllerBase.OnException(ExceptionContext filterContext)
   at System.Web.Mvc.ControllerActionInvoker.InvokeExceptionFilters(ControllerContext controllerContext, IList`1 filters, Exception exception)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.&lt;&gt;c__DisplayClass25.&lt;BeginInvokeAction&gt;b__22(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult)
   at System.Web.Mvc.Controller.&lt;&gt;c__DisplayClass1d.&lt;BeginExecuteCore&gt;b__18(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncResultWrapper.&lt;&gt;c__DisplayClass4.&lt;MakeVoidDelegate&gt;b__3(IAsyncResult ar)
   at System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncResultWrapper.&lt;&gt;c__DisplayClass4.&lt;MakeVoidDelegate&gt;b__3(IAsyncResult ar)
   at System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult)
   at System.Web.Mvc.MvcHandler.&lt;&gt;c__DisplayClass8.&lt;BeginProcessRequest&gt;b__3(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncResultWrapper.&lt;&gt;c__DisplayClass4.&lt;MakeVoidDelegate&gt;b__3(IAsyncResult ar)
   at System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&amp; completedSynchronously)

</Data>
    <Data>https://appurl:443/Home/Authenticate?param={'AccessCode' :'demo', 'UserName' :'user', }</Data>
    <Data>/Home/Authenticate</Data>
    <Data>server ip</Data>
    <Data>
    </Data>
    <Data>False</Data>
    <Data>
    </Data>
    <Data>DMZ account</Data>
    <Data>5</Data>
    <Data>DMZ account</Data>
    <Data>True</Data>
    <Data>   at OurApp.ControllerBase.OnException(ExceptionContext filterContext)
   at System.Web.Mvc.ControllerActionInvoker.InvokeExceptionFilters(ControllerContext controllerContext, IList`1 filters, Exception exception)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.&lt;&gt;c__DisplayClass25.&lt;BeginInvokeAction&gt;b__22(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult)
   at System.Web.Mvc.Controller.&lt;&gt;c__DisplayClass1d.&lt;BeginExecuteCore&gt;b__18(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncResultWrapper.&lt;&gt;c__DisplayClass4.&lt;MakeVoidDelegate&gt;b__3(IAsyncResult ar)
   at System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncResultWrapper.&lt;&gt;c__DisplayClass4.&lt;MakeVoidDelegate&gt;b__3(IAsyncResult ar)
   at System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult)
   at System.Web.Mvc.MvcHandler.&lt;&gt;c__DisplayClass8.&lt;BeginProcessRequest&gt;b__3(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncResultWrapper.&lt;&gt;c__DisplayClass4.&lt;MakeVoidDelegate&gt;b__3(IAsyncResult ar)
   at System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&amp; completedSynchronously)
</Data>
  </EventData>
</Event>
异常信息:
异常类型:NullReferenceException
异常消息:对象引用未设置为对象的实例。
在eCertsFormsAdmin.ControllerBase.OneException时(上下文筛选器上下文除外)
位于System.Web.Mvc.ControllerActionInvoker.InvokeeExceptionFilters(ControllerContext ControllerContext,IList`1过滤器,异常)
在System.Web.Mvc.Async.AsyncControllerActionInvoker.c__DisplayClass25.b__22(IAsyncResult asyncResult)
位于System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult)
在System.Web.Mvc.Controller.c__;u displayClassId.b__u18(IAsyncResult asyncResult)
在System.Web.Mvc.Async.AsyncResultRapper.c__DisplayClass4.b__3(IAsyncResult ar)中
位于System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)
在System.Web.Mvc.Async.AsyncResultRapper.c__DisplayClass4.b__3(IAsyncResult ar)中
在System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult)上
在System.Web.Mvc.MvcHandler.c_uuu显示class8.b_uuu3(IAsyncResult asyncResult)
在System.Web.Mvc.Async.AsyncResultRapper.c__DisplayClass4.b__3(IAsyncResult ar)中
位于System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)
在System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()中
在System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔值&同步完成)
请求信息:
请求URL:https://appurl:443/Home/Authenticate?param={'AccessCode':'demo','UserName':'user'}
请求路径:/Home/Authenticate
用户主机地址:web服务器ip地址
用户:
已验证:False
身份验证类型:
线程帐户名称:DMZ帐户
线程信息:
线程ID:5
线程帐户名称:DMZ帐户
是模仿:真的吗
堆栈跟踪:在eCertsFormsAdmin.ControllerBase.OnException(上下文筛选器上下文除外)
位于System.Web.Mvc.ControllerActionInvoker.InvokeeExceptionFilters(ControllerContext ControllerContext,IList`1过滤器,异常)
在System.Web.Mvc.Async.AsyncControllerActionInvoker.c__DisplayClass25.b__22(IAsyncResult asyncResult)
位于System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult)
在System.Web.Mvc.Controller.c__;u displayClassId.b__u18(IAsyncResult asyncResult)
在System.Web.Mvc.Async.AsyncResultRapper.c__DisplayClass4.b__3(IAsyncResult ar)中
位于System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)
在System.Web.Mvc.Async.AsyncResultRapper.c__DisplayClass4.b__3(IAsyncResult ar)中
在System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult)上
在System.Web.Mvc.MvcHandler.c_uuu显示class8.b_uuu3(IAsyncResult asyncResult)
在System.Web.Mvc.Async.AsyncResultRapper.c__DisplayClass4.b__3(IAsyncResult ar)中
位于System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)
在System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()中
在System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔值&同步完成)
自定义事件详细信息:
事件Xml:
1309
3.
3.
0x8000000000000
425417
应用
网络服务器
3005
发生了未处理的异常。
2017年3月28日上午9:56:18
2017年3月28日下午1:56:18
3accff4bebb74aa5823c9d05fe7ae5c0
135
4.
0
/LM/W3SVC/6/ROOT-1-131351820594338174
满满的
/
C:\www\apppath\
网络服务器
6768
w3wp.exe
GTSDMZ\eValid
NullReferenceException
对象引用未设置为对象的实例。
在eCertsFormsAdmin.ControllerBase.OneException时(上下文筛选器上下文除外)
位于System.Web.Mvc.ControllerActionInvoker.InvokeeExceptionFilters(ControllerContext ControllerContext,IList`1过滤器,异常)
在System.Web.Mvc.Async.AsyncControllerActionInvoker.c__DisplayClass25.BeginInvokeActionb__22(IAsyncResult asyncResult)
位于System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult)
在System.Web.Mvc.Controller.c__displayClassId.BeginExecuteCoreb_u18(IAsyncResult asyncResult)
在System.Web.Mvc.Async.AsyncResultRapper.c__DisplayClass4.MakeVoidDelegateb__3(IAsyncResult ar)中
位于System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)
在System.Web.Mvc.Async.AsyncResultRapper.c__DisplayClass4.MakeVoidDelegateb__3(IAsyncResult ar)中
在System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult)上
在System.Web.Mvc.MvcHandler.c__显示类8.BeginProcessRequestb__3(IAsyncResult asyncResult)
在System.Web.Mvc.Async.AsyncResultRapper.c__DisplayClass4.MakeVoidDelegateb__3(IAsyncResult ar)中
位于System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)
at系统