我正在尝试使用来自我的ASP.NET网站的SQL Server数据库邮件发送附件的电子邮件,因此我想我需要将要附加的文件上传到托管数据库的服务器。 / p>
问题是,我的ASP.NET网站的Web服务器和数据库位于不同的服务器上。服务器也在不同的域上。
这是我到目前为止所做的:
我在托管数据库的服务器中的路径\\myservername\myfolder\
下共享了一个文件夹。以下代码是将所选文件上载到共享文件夹中。
这是.aspx页面中的ASP.NET webforms文件上传控件:
<asp:FileUpload ID="fu" runat="server" />
这是我的代码隐藏:
NetworkCredential myCred = new NetworkCredential("myusername", "mypassword", "mydomain");
using (WebClient webclient = new WebClient())
{
webclient.UseDefaultCredentials = true;
webclient.Credentials = myCred;
if (fu.HasFile)
{
string path = string.Empty;
string ServerPath = "\\\\myservername\\myfolder\\";
string filename = Path.GetFileName(fu.FileName);
string TempPath = Path.Combine(Path.GetTempPath(), filename);
fu.SaveAs(TempPath);
path = Path.Combine(ServerPath, filename);
Uri ServerFile = new Uri(path);
webclient.UploadFile(ServerFile, "PUT", TempPath);
return path;
}
else
{
return "";
}
}
如果我在托管网站的Web服务器的服务器之前登录到共享文件夹,或者在调试网站时我在本地计算机上登录了共享文件夹,则代码可以正常工作。
但是如果我事先没有登录,它会抛出异常消息:
Logon failure: unknown user name or bad password.
我尝试通过添加包含我的用户名,密码和网络客户端域名的网络凭据来解决此问题,但即使我确定已通过正确的凭据,也会出现同样的错误。
有没有办法解决这个问题,还是我在这里误解了什么?我不太明白问题是什么。非常感谢任何帮助。