Request.ServerVariables 在 VS 2013 中不起作用

本文关键字:不起作用 2013 VS ServerVariables Request | 更新日期: 2023-09-27 18:34:06

过去几年我一直在使用Visual Studio 2010,但今天我们需要更新到2013。我去打开我现有的项目,它以前没有任何问题,但现在抛出以下错误:

A first chance exception of type 'System.ArgumentOutOfRangeException' 
occurred in mscorlib.dll
Additional information: startIndex cannot be larger than length of string.

此错误在以下代码行处触发:

string logon_user = Request.ServerVariables["LOGON_USER"].Substring(7);

关于如何解决这个问题的任何想法?经过一些研究,我找到了一个简单的解决方法,改用这一行:

string logon_user = System.Security.Principal.WindowsIdentity.GetCurrent().Name.Substring(7);

但我更感兴趣的是找出 Request.ServerVariables 不再工作的原因。我正在大量其他项目中使用它,并希望看看我是否可以在不更改每个项目中的行的情况下解决它。

Request.ServerVariables 在 VS 2013 中不起作用

我的猜测是你在本地运行这个,对吗?在您的开发机器上? 如果是这种情况,那么有时Visual Studio会将匿名身份验证重置为on,如果它处于打开状态,则ServerVariables将返回null。

看到这个答案:

每次在VS2012中打开解决方案时,都会重置IIS 快速应用程序主机.config安全性