不能通过Server.Execute()执行文件

本文关键字:执行 文件 Execute Server 不能 | 更新日期: 2023-09-27 18:05:14

我想在子网站中执行一个文件。父站点和子站点都是web应用程序。我不想重定向到子网站文件。我正在尝试使用Server.Execute()执行子文件,但它不工作。

主URL为:http://mysite.com/subsite

子站点文件的虚拟路径:~/subsite/subfile.aspx

当我访问http://mainsite.com/subsite/subfile.aspx时,它工作正常。当我做

Server.Execute("~/subsite/subfile.aspx")
从父站点,我得到:
Could not load type 'Subsite.SubFile'.

你知道我做错了什么吗?

不能通过Server.Execute()执行文件

我很确定server.execute不会跨越应用程序边界。我不是百分之百确定;但考虑到错误信息,这似乎是可能的。

基本上错误是说它无法定位(或加载)Subsite.SubFile类定义的程序集。

我能想到两种可能的解决办法。

  1. 将子站点的程序集复制到主站点bin文件夹中。此可能有效,因为主站点随后可以定位程序集并执行代码。这里有明显的缺点。例如需要将所有的配置信息从子站点复制到主站点的web.config。此外,任何具有相同名称的程序集都是有问题的;当然,每次有更新时都需要在主站的顶部部署子站…

  2. 不做server.execute;使用HttpRequest类对子站点进行常规http调用,然后解析响应并将所需内容写回浏览器。