Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 围绕经典ASP应用程序添加功能_Asp.net_Asp Classic_Webforms_Migration - Fatal编程技术网

Asp.net 围绕经典ASP应用程序添加功能

Asp.net 围绕经典ASP应用程序添加功能,asp.net,asp-classic,webforms,migration,Asp.net,Asp Classic,Webforms,Migration,我将添加新的网页和功能添加到当前网页。 我基本上希望使用新技术,但我不知道如何将其添加到经典的ASP页面 换句话说,我可以在经典asp页面中创建一个aspx页面吗?或者诸如此类,可能是在ASP.NET中创建用户控件并在经典ASP中使用它?您可以在ASP.NET应用程序中运行经典ASP页面。您可以在ASP.NET中添加页面您可以在ASP.NET应用程序中运行经典的ASP页面。您可以在ASP.NET中添加页面您不应该将其添加到现有的经典ASP页面中。您可能希望执行从经典ASP到.Net的完整(但速度

我将添加新的网页和功能添加到当前网页。 我基本上希望使用新技术,但我不知道如何将其添加到经典的ASP页面


换句话说,我可以
在经典asp页面中创建一个aspx页面吗?或者诸如此类,可能是在ASP.NET中创建用户控件并在经典ASP中使用它?

您可以在ASP.NET应用程序中运行经典ASP页面。您可以在ASP.NET中添加页面

您可以在ASP.NET应用程序中运行经典的ASP页面。您可以在ASP.NET中添加页面

您不应该将其添加到现有的经典ASP页面中。您可能希望执行从经典ASP到.Net的完整(但速度较慢)迁移。否则,您可能只想在新页面中完全添加新功能。如果您有一个模板站点,这可能会变得有点麻烦,因为您需要在.Net中重新创建这些模板,因为在同一个文件中混合.Net和classic是不可能的

您最终可能会求助于iFrame,但这有时会让浏览器变得愚蠢。如果您的应用程序依赖于会话,则需要对此进行说明,因为.Net无法访问经典会话,除非您坚持使用原语(string/int/etc)并使用外部状态提供程序(如SQL)保存具有可传递的会话ID的数据

拥有一个混合网站是一个非常棘手的前景,不能掉以轻心。小心点,否则你真的会陷入困境

编辑:部分混合示例说明

我们有一个700页左右的站点要从经典asp转移到asp.NET2.0。许多页面被分配时间在单个项目中完全转移,但有几个区域无法重构,必须进行调整。我们为新的.Net结构、数据库和业务对象库建立了一个母版页体系结构,并开始了传输。在合并经典asp页面时,我们确定有一些需求

  • 由于母版页将控制基本布局、菜单、页眉、页脚,因此我们需要从任何带来的页面中删除这些元素
  • 新的会话需求与现有会话功能不兼容
  • 经典asp页面仍然必须遵守.Net formsauthentication
  • 我用以下方法解决了这些问题:

  • 我们的应用程序是针对特定客户的,因此我们能够确定浏览器需求。这使得我们可以使用iframe来保存经典的asp内容/应用程序,而不用担心iframe会在Webkit或Firefox中疯狂使用
  • 为了满足会话需求,我们在.Net和经典asp中构建了一个小型加密/解密引擎,使我们能够加密“查询字符串”以来回传递会话信息。它不是超级安全的,只是足够让临时用户不会被诱惑去处理数据。此外,我们还必须建立两个翻译文件。第一个翻译文件是一个.Net库静态方法,它将获取会话数据,提取必要的片段并创建查询字符串。第二个版本是经典的asp版本,用于读取查询字符串、解析数据和直接创建会话原语
  • 使.Net的经典asp页面正常运行是一个服务器管理问题。要做到这一点,使用formsauthentication属性protection=“All”应该足够了,但我发现它仍然没有涵盖其他处理程序预期的项目。所以我在IIS中添加了一个通配符映射来处理所有文件。从IIS网站的属性中,选择“主目录”,然后单击“配置”。在下一个窗口的底部是一个“通配符应用程序映射”框。单击“插入”并导航到用于查找aspnet_isapi.dll文件的.Net版本。这将强制所有文件对此文件进行解析(除了启动身份验证请求之外,这是无害的)

  • 由于NDA的原因,我无法提供具体的代码示例,但这至少应该提供一些关于从这里开始的想法。

    您不应该将其添加到现有的经典ASP页面中。您可能希望执行从经典ASP到.Net的完整(但速度较慢)迁移。否则,您可能只想在新页面中完全添加新功能。如果您有一个模板站点,这可能会变得有点麻烦,因为您需要在.Net中重新创建这些模板,因为在同一个文件中混合.Net和classic是不可能的

    您最终可能会求助于iFrame,但这有时会让浏览器变得愚蠢。如果您的应用程序依赖于会话,则需要对此进行说明,因为.Net无法访问经典会话,除非您坚持使用原语(string/int/etc)并使用外部状态提供程序(如SQL)保存具有可传递的会话ID的数据

    拥有一个混合网站是一个非常棘手的前景,不能掉以轻心。小心点,否则你真的会陷入困境

    编辑:部分混合示例说明

    我们有一个700页左右的站点要从经典asp转移到asp.NET2.0。许多页面被分配时间在单个项目中完全转移,但有几个区域无法重构,必须进行调整。我们为新的.Net结构、数据库和业务对象库建立了一个母版页体系结构,并开始了传输。在合并经典asp页面时,我们确定有一些需求

  • 由于母版页将控制基本布局、菜单、页眉、页脚,因此我们需要从任何带来的页面中删除这些元素
  • 新的会话需求与现有会话功能不兼容
  • 经典asp页面仍然必须遵守.Net formsauthentication
  • 我解决了这个问题