【问题标题】:Error writing a file from one server to another server using c#使用c#将文件从一台服务器写入另一台服务器时出错
【发布时间】:2012-04-16 07:20:18
【问题描述】:

我正在尝试将上传的FileStream 从我的网络服务器写入其他服务器,这会给出错误:

Logon failure: unknown user name or bad password.

Stack Trace:
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)

应用程序池在“网络服务”下运行,我已将此用户的其他服务器的文件夹权限设置为“网络服务 => 完全控制”。

【问题讨论】:

    标签: asp.net asp.net-mvc-3 amazon-ec2 iis-6 .net


    【解决方案1】:

    机器 A 上的“网络服务”帐户与机器 B 上的“网络服务”帐户不同。它们都是依赖于机器的身份,您不能针对另一个身份。

    您可以改为将目标文件夹的读/写权限授予“所有人” - 这会起作用。

    如果您在域环境中,那么解决此类问题的一个常见技巧是使用域帐户作为应用程序池标识 - 这样您就可以在机器 B 上的文件夹上设置 ACL,因为它可以“查看”机器 A 上的应用程序池正在使用的身份。

    【讨论】:

    • 我也给了“所有人”的完全控制权,但还没有成功。
    • ...然后目标服务器无法识别调用服务器的身份(因此它没有在执行“所有人”检查之前进行身份验证)。为应用程序池使用域帐户。
    • 嘿@Andras,你能给我一个教程链接,以使用域帐户作为应用程序链接吗?
    • 谷歌它:):google.co.uk/…
    猜你喜欢
    • 2016-10-18
    • 2019-01-24
    • 2020-04-14
    • 2011-03-18
    • 1970-01-01
    • 2014-05-17
    • 1970-01-01
    • 2011-11-05
    • 1970-01-01
    相关资源
    最近更新 更多