如何从我的服务器上的网络路径中使用asp.net MVC应用程序
读我已经安装运行.NET MVC应用程序到另一台服务器正在使用的文件的存储上载到网络服务器上的网络路径。为了允许通过应用程序文件上传到网络路径我修改IIS中的应用程序池,以便应用程序有权限上传到它。这一切工作正常。如何从我的服务器上的网络路径中使用asp.net MVC应用程序
为了让应用程序加载页面时读取该文件,我创建在IIS虚拟目录现在出现在IIS该站点的文件系统的一部分。我怎么能那么访问和我的应用程序生成此位置的路径,这样的路径可以被传递到一个数据库,然后将图像的网页上加载后?
比方说,我的路径是:
虚拟路径是useruploads/image.jpg的
我怎么能有我的申请承认我创建的虚拟路径?
另一种方式是在IIS中删除虚拟目录,是否有一种方法可以让我的应用程序直接访问Web服务器上的网络路径?
编辑 - 添加到上面我已经在IIS中映射的网络路径,它体现在IIS下我的网站如下:
我想,然后从里面读取此目录asp.net MVC应用程序使用地址这样〜/ useruploads/file.jpg。如果我能得到我的应用程序虚拟目录,然后承认我就能从中读取数据。
编辑二号
好吧,我想我已经决定了我的问题的性质和是一个更加清晰。基本上,当我在网页上链接到文件时,我正好访问该文件。但是我在Chrome中收到'不允许加载本地资源'的消息。我相信这只是一个Web浏览器不允许我加载图像的问题,因为它在页面上用本地地址(网络路径)引用。因此,我现在试图在应用程序中创建一个动作,以使用指向我的动作的Url.Action加载图像,然后该动作将该id转换为图像流。
笔者认为:
<img src="@Url.Action("image", "files", new { image = Model.image})" alt="name" />
哪里Mode.image是像文件夹\ image.jpg的。
操作:
public FileResult image(string id)
{
var dir = @"\\SERVERNAME\upload\";
var path = Path.Combine(dir, id);
return base.File(path, "image/jpg");
}
所以。为了使用网络路径,我不得不使用
<img src="@Url.Action("image", "files", new { image = Model.image})" alt="name" />
在我看来,这个动作:
public FileResult image(string id)
{
var dir = @"\\SERVERNAME\upload\";
var path = Path.Combine(dir, id);
string contentType = MimeMapping.GetMimeMapping(path);
return base.File(path, contentType);
}
这则返回图像的页面,尽管这意味着图像不会被缓存。
“为了让应用程序在加载页面时读取文件,我在IIS中创建了一个虚拟目录,该目录现在显示为IIS中该站点的文件系统的一部分” - 您能否解释这一点;你为什么要为一个文件存储区创建一个虚拟目录?您是否在从Web HDD或其他服务器硬盘读取ASP.net MVC应用程序中的文件时遇到问题? – PhillipH
Web服务器上的网络路径来自另一台服务器,因此另一台服务器HDD作为Web服务器上的网络路径。我可以使用地址\\ serverIP \ useruploads上传到它,但我似乎无法使用相同的地址路径从它读取。我需要一个应用识别的路径,因此试图在iis中为应用添加虚拟目录,然后在这里询问我的应用能否“看见”虚拟目录的方式,例如〜/ useruploads/file.jpg,所以我可以在应用程序 – Rob
中这样引用它。我应该说,当我说'从中读取'时,我的意思是使用通过该应用程序的链接将图像加载到html页面上。因此,该应用程序调用\\ serverIP \ useruploads \ image.jpg作为来自数据库的图像的地址,但这会在Chrome中给出'不允许加载本地资源'的错误,并且不会在任何其他浏览器中加载。我至少需要的是,我需要将该网络路径映射到该应用能够识别的虚拟地址。 – Rob