我有一个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
但是,我不确定如何实现它,或者,如果它甚至可以解决问题。
有什么想法吗?
答案 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 ...有一天必须重建服务器