我想在子网站中执行文件。父站点和子站点都是Web应用程序。我不想重定向到子站点文件。我正在尝试使用Server.Execute()执行子文件,但它无法正常工作。
主要网址是: http://mysite.com/subsite
子网站中文件的虚拟路径:〜/ subsite / subfile.aspx
当我访问http://mainsite.com/subsite/subfile.aspx时,它运行正常。当我做的时候
Server.Execute("~/subsite/subfile.aspx")
从父网站获得:
Could not load type 'Subsite.SubFile'.
任何想法我做错了什么?
答案 0 :(得分:1)
我很确定server.execute
不会跨越应用程序边界。我不是百分之百肯定的;但鉴于错误信息似乎很可能。
基本上错误是它找不到(或加载)定义了Subsite.SubFile
类的程序集。
我可以想到两种可能的解决方案。
将子网站的程序集复制到主站点bin文件夹中。这个可能有效,因为主站点可以找到程序集并执行代码。这里有明显的缺点。例如需要将子网站的所有配置信息复制到主站点web.config中。此外,任何具有相同名称的程序集都会出现问题;当然,每次有更新时都需要在主站点上部署子站点...
而不是server.execute
;使用HttpRequest
类对子站点进行常规http调用,然后解析响应并将所需内容写回浏览器。