我有一些小额支付webApp,我们的客户可以在他们的IIS上安装它并使用它。他们可以上传自己的标识。
我们正在使用WyBuild更新此应用程序,但它用新版本替换了web文件夹中的所有文件,因此删除了标识,这就是我们将客户的文件放在程序文件中的原因,因此更新程序无法删除它们。
问题是我无法从以下路径加载图像
C:\Program Files\MyApp\ImageFoder\logo.jpg
我不知道怎么做,我几乎可以肯定无法加载
我的网络应用程序已开启
C:\inetpub\wwwroot\MyApp\
我无法在webFolder上显示图像,因为wyBuild会在我尝试更新它们时删除它们,我已经尝试过这样的路径:(不行)
///file:c:/program files/ .... etc
所以,问题是
如何使用窗口路径将图像加载到asp:image控件?
答案 0 :(得分:6)
您需要将IIS虚拟文件夹配置为指向存储图像的备用位置。
我不会把它们放在Program Files中,但是wwwroot中的兄弟文件夹会更好。
记住,NTFS权限很容易搞砸,并且在一个地方管理它们更容易。
更新 - 适用于本地安装的仅限本地站点或者(如果您的流量最小,这只是一个好主意。不适用于公共网站),您可以随意提供文件使用VirtualPathProvider的位置。听起来这个'网络应用'出于某种原因像桌面应用程序一样安装?如果要在外部存储用户数据,则用户的App Data文件夹将是合适的,但仅限于Web应用程序拒绝外部连接,并且只能从计算机访问。
由于您正在处理图像,我grab the imageresizing.net库并使用VirtualFolder插件动态提供文件。它在您的项目中增加了200KB,但是如果需要,您可以获得免费的动态图像大小调整和/或处理,并节省一些天使VirtualPathProvider子类工作(它们是一场噩梦)。
答案 1 :(得分:0)
使用隔离存储不是更好吗? 补充:我的意思是在用户计算机上,如果找不到它们,则再次上传它们。这会完全消除您的开销。