ASP.Net Web Handler UNC与文件路径

时间:2011-06-27 15:05:08

标签: asp.net httphandler

我有一个Web处理程序,我正在使用它来读取文件,然后将其流式传输到客户端。如果我使用本地驱动器上的文件路径,这工作正常:   d:\路径\至\我\ File.flv

但是,如果我使用sharename:   \服务器名\共享\ File.flv

我收到“登录失败:未知用户名或密码错误。”

该分享对所有人开放,完全控制。

我启用了模拟,并在我的处理程序中包含以下内容:

context.Response.Write("Context User: " + ((WindowsIdentity)context.User.Identity).Name + "<br />");
context.Response.Write("Windows Identity: " + WindowsIdentity.GetCurrent().Name + "<br />");

当我将IIS应用程序配置为使用特定帐户进行匿名访问时,我得到以下内容

上下文用户: Windows标识:SpecificAccount

当我将IIS配置为不使用匿名访问,但使用Windows身份验证时,我得到

上下文用户:MyAccount Windows身份:MyAccount

它不会更改共享与非共享的错误消息。

我找到了关于Web处理程序和模拟的网页:   http://weblogs.asp.net/drnetjes/archive/2005/06/06/410508.aspx

但是,我不确定如何实现它,或者,如果它甚至可以解决问题。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

在上面的帖子中,它很简单,但你放了\ServerName\ShareName\File.flv

不应该是\\ServerName\ShareName\File.flv

最糟糕的情况是,您可以使用file://ServerName/ShareName/File.flv,但请注意,对于本地文件,您应该使用简写file:///C:/path/File.flv。 (见wikipedia

答案 1 :(得分:0)

Gaah ......我讨厌回答我自己的问题,但问题是:

正确设置了共享和文件权限。这是一台旧的Windows 2003机器,当我使用新的应用程序池(我使用这个特定的应用程序)时,我总是遇到权限问题。

解决方案是(facepalm)重启服务器。

我很抱歉所有60多个奇怪的人浪费在这上面。

再次感谢您的帮助。

愚蠢的IIS ...愚蠢的Windows 2003 ...有一天必须重建服务器