我有一个ASP.net网站,在后面的代码我正在页面加载创建一个文件夹,如果它不存在于本地驱动器中:
string strDirectory = @"C:\PDFGenerate\";
try
{
if (!Directory.Exists(strDirectory))
{
Directory.CreateDirectory(strDirectory);
}
}
catch (Exception ce)
{
tc.Text = "Unable to create directory to save generated PDF files";
}
该网站目前托管在我的本地服务器中。我将网站添加到我的IIS,以便我可以从我们网络中的任何PC本地访问它。
我遇到的问题是每当我从本地PC访问网站时,该文件夹都是在服务器而不是我的电脑中创建的。
这与访问有关吗?我试图在我自己的本地驱动器中创建一个文件夹,它工作正常。
答案 0 :(得分:8)
我遇到的问题是每当我从本地PC访问网站时,该文件夹都是在服务器而不是我的电脑中创建的。
是。这是因为您的所有代码都在服务器上执行。服务器只是将HTML传送到您的PC,Web浏览器显示HTML。当然,如果包含一些Javascript, 将在PC上运行(在浏览器中) - 但C#在服务器上运行。 (想一想:您如何期望C#代码在没有任何运行.NET的工具的机器上运行?)
了解代码运行的位置确实非常重要 非常重要。作为Web应用程序创建者,您无法在客户端计算机上创建文件夹。您对本地(即客户端)存储有一些非常有限的访问权限,但您将无法执行任意文件系统操作。那将是非常不安全的。