将 PHP 与 asp.net / asp.net-mvc 集成的最佳方式

2023-12-13

巧合的是,这个问题在上周出现了两次。

客户有一个想要保留的现有 PHP 网站。他们还拥有或即将拥有一些 ASP.net 网页,希望将其集成到现有站点中,使其显示为单个站点。

我们想到了以下几种可能性:

  • 使用 IFrame
  • 将所有 html / 菜单复制到新站点以及站点之间的链接,用户在站点之间移动但不会注意到,如果他不查看 url
  • 使用Web 服务从asp.net 网站读取信息并在PHP 网站上编写html。
  • 使用 WSRP(Web 服务远程 Portlet)。已对此进行测试以在 Java 站点上显示 Sharepoint Web 部件,尚未使用 PHP 进行测试。

有人尝试过这些吗?有更好的建议吗?有什么是我们绝对应该避免的吗?

Thanks

Shiraz


这实际上取决于可接受的集成水平。您最初的建议存在许多可维护性问题,我不建议将它们用于面向公众的互联网站点。

如果我拥有完全控制权,我可能会考虑将 PHP 站点迁移到 IIS,并将 ASP.NET 页面与 PHP 文件一起部署到该站点。这可能相当棘手,具体取决于 PHP 站点的构建方式。您可能遇到的问题包括:

  • PHP 应用程序中 mod_rewrite 的使用以及 Windows 上是否有合适的替代品。在撰写本文时,这种情况已经好很多,但您可能需要调试现有配置。
  • 扩展。您需要的所有 PHP 库和扩展都可以在 Windows 上使用吗?
  • 表现。有些人报告 Windows 下 PHP 的性能令人无法接受。我确信,通过正确的性能调整,您可以提供与旧网站相当的内容,即使这确实是一个问题。

关于您建议的选项

  • 使用 IFrame。这是可行的,但有点笨重,如果您需要代码库之间的 SSL 或 JavaScript 交互性,则可能会出现问题。
  • 站点之间的链接。这是可行的,但如果 SEO 对您很重要,则可能会出现问题。有时,您还需要考虑更多的链接,而不仅仅是菜单。
  • 使用 Web 服务读取 ASP.NET 页面。仅当您的页面非常简单且交互或回发为零时,这才真正可行。如果你需要处理回发、视图状态等,你就会遇到麻烦。使用 ASP.NET MVC 为您提供更多控制权和更轻松的集成体验。我个人的观点是,这是非常hacky的,而且我只会为单个页面做一些事情(如果它真的很重要的话)。
  • 使用 WSRP(Web 服务远程 Portlet)。我不确定这是常规 ASP.NET 的一个选项,我一直认为这是 SharePoint 的附加功能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 PHP 与 asp.net / asp.net-mvc 集成的最佳方式 的相关文章

  • 如何在ASP.NET服务器的web.config文件中使用Azure Pipeline中设置的环境变量?

    我打算在 ASP NET 中使用 Azure Pipeline 中的以下环境变量web config file
  • 如何从父类函数访问子类中定义的常量?

    我从 php net 看到这个例子 但 c MY CONST 仅在 5 3
  • 确定最接近的已知颜色

    我允许我的应用程序的用户选择自定义颜色 并希望有一种方法来显示每种颜色的友好名称 而不是显示十六进制代码的文本表示形式 我如何找到最近的System Drawing Color对于给定的十六进制代码 希望这对某人有帮助 Public Fun
  • ASP.NET预编译的优点是什么?

    使用 Aspnet compiler exe 代替通过 Visual Studio 进行的传统发布有多有用 那么资源 resx 文件又如何呢 与简单的 xcopy 相比 预编译有两个主要优点 文件系统不会包含所有代码 aspx文件和后面的所
  • PHP 在输入流中使用 fwrite 和 fread

    我正在寻找将 PHP 输入流的内容写入磁盘的最有效方法 而不使用授予 PHP 脚本的大量内存 例如 如果可以上传的最大文件大小为 1 GB 但 PHP 只有 32 MB 内存 define MAX FILE LEN 1073741824 1
  • 在 PHP 中撤销 Google 访问令牌

    正如标题所示 我想以编程方式撤销授予的访问令牌 即在 PHP 中 我发现这个他们的网站 https developers google com identity protocols OAuth2WebServer tokenrevoke 但
  • 同时从2个表中删除?

    我正在使用 asp net 和 sql 服务器 我有 2 个表 类别和产品 在产品表中 我的categoryId 为FK 我想要做的是 当我从类别表中删除类别时 我希望该类别中的所有产品都将在产品表中删除 如何才能做到这一点 我更喜欢使用存
  • 通过 $_SESSION 从一个脚本发送到另一个脚本期间数据丢失

    我正在尝试将一个充满属性的对象从一个 PHP 发送到另一个 PHP SESSION object obj where obj是一个用 foreach 循环指定的对象 foreach array of objects as obj SESSI
  • 在 apache docker 容器中运行虚拟主机

    我在同一个 apache 容器中有两个 php 应用程序 我试图在端口上运行其中一个应用程序 因为它需要通过根域而不是子文件夹进行访问 我想在端口 8060 上运行应用程序 我尝试使用 apache 虚拟主机执行此操作 但它不会加载页面 h
  • 为什么 appcmd.exe 解锁配置在 Azure 模拟器上不起作用?

    我最近升级到 Azure 2 1 SDK 现在我的部分功能遇到了问题web config在计算模拟器上运行时处于 Web 角色中 我的web config包含这个
  • 跟踪用户何时点击浏览器上的后退按钮

    是否可以检测用户何时单击浏览器的后退按钮 我有一个 Ajax 应用程序 如果我可以检测到用户何时单击后退按钮 我可以显示适当的数据 任何使用 PHP JavaScript 的解决方案都是优选的 任何语言的解决方案都可以 只需要我可以翻译成
  • 表单计算器脚本基本价格未加载 OnLoad

    我的表单中有一个计算器来计算我的下拉选项选择 function select calculate on change calc input type checkbox calculate on click calc function cal
  • PHP HEREDoc (EOF) 语法在 Sublime Text 3 上突出显示与正斜杠的差异

    我不熟悉 Sublime Text 3 如何使用语法突出显示 例如 如果它纯粹依赖于主题 或者它内置于主题运行的标准中 但就我而言 使用 PHP 的 HERE 文档和转发存在一些语法突出显示差异斜线 一旦出现正斜杠 ST3 就会认为以下所有
  • 在 iFrame 内维护会话状态

    不确定我是否疯了 但我在 iFrame 内的会话状态遇到问题 它是一个域在另一个域中的简单设置 我不需要跨域共享任何内容 我想做的就是将一个网站嵌入到另一个网站中 并且我希望该嵌入网站能够使用 cookie 会话状态登录 编辑 更新 等 为
  • 标准化 UTF-8 到底是什么?

    The 重症监护室项目 http userguide icu project org transforms normalization 现在也有一个PHP库 http us php net manual en class normalize
  • DbContext 和 ObjectContext 有什么区别

    From MSDN 表示工作单元和存储库模式的组合 使您能够查询数据库并将更改分组在一起 然后将这些更改作为一个单元写回存储 DbContext在概念上类似于ObjectContext 我虽然DbContext只处理与数据库的连接以及针对数
  • 内部 while 循环不工作

    这是我项目网页上的代码片段 这里我想显示用户选择的类别 然后想显示属于该类别的主题 在那里 用户可以拥有多个类别 这没有问题 我可以在第一个 while 循环中打印所有这些类别 问题是当我尝试打印主题时 结果只显示一行 但每个类别中有更多主
  • 动态添加 ASP.Net 控件

    我有一个存储过程 它根据数据库中存储的记录数返回多行 现在我想有一种方法来创建 div 带有包含该行值的控件的标记 如果从数据库返回 10 行 则 10 div 必须创建标签 我有下面的代码来从数据库中获取结果 但我不知道如何从这里继续 S
  • Magento - 自定义支付模块

    这是一个非常普遍的问题 但这里是 我正在尝试在 Magento 中创建一个自定义支付模块 我创建了一个 常规 模块 可以连接到 Magento 事件 观察者模型 但是我如何告诉 Magento 将模块视为支付模块 以便它显示在管理后端和结账
  • 无法显示 Laravel 欢迎页面

    我的服务器位于 DigitalOcean 云上 我正在使用 Ubuntu 和 Apache Web 服务器 我的家用计算机运行的是 Windows 7 我使用 putty 作为终端 遵循所有指示https laracasts com ser

随机推荐

  • Dotty 无法推断采用抽象类型的类型参数特征的泛型 Scala 函数的结果类型

    简单的价值层次结构 想象一下这个简单的特征Value其中每个实现类都有一个value某种类型的T trait Value type T def value T 我们有两个不同的实现类代表Int and String值分别 case clas
  • “静态最终”直接分配到哪里?年轻一代、老一代还是烫发一代?

    静态最终 是否直接分配到年轻一代或老一代或永久一代 我想随着时间的推移 它很可能会进入旧代 如果它被分配在 Perm gen 中 那么当在 Perm Gen 中进行类卸载时 它会被垃圾收集吗 静态最终 是否直接分配到年轻一代或老一代或永久一
  • 使用 django.contrib.gis.measure.D 时出现 GeoDjango dwithin 错误

    首先 RHEL 6 5 上的 Python 2 7 6 Django 1 6 5 Postgres 9 3 4 PostGIS 2 1 3 psycopg2 2 5 3 这是相关模型 class Location models Model
  • 在 VB.Net 中将大数据表快速导出到 Excel 电子表格

    我这里有一个有趣的难题 如何快速 在 1 分钟内 将大型数据表 由 SQL 填充 35 000 行 导出到 Excel 电子表格中供用户使用 我有可以处理导出的代码 虽然代码本身没有任何 错误 但导出整个文件需要 4 分钟 速度慢得令人发指
  • 如何在npm中配置多个私有仓库和公共仓库?

    我想运行 npm install 并拥有多个存储库来获取依赖项 我想首先在公共 Nexus 上查找的逻辑 如果没有找到我的私人 Nexus 上的工件 I add npmrc为了这 registry https myRepo1 strict
  • 尝试在 ubuntu 上安装 pygame 出现错误

    我正在尝试使用 pip 安装 pygame 但每当我这样做时都会收到错误Command python setup py egg info failed with error code 1 in tmp pip build hZGMxh py
  • 如果程序集存在,C# 条件编译

    我有一个项目 其参考可能存在 也可能不存在 我有使用该引用的代码 并且仅当程序集存在时才编译它 我正在思考以下内容 if ASSEMBLY EXISTS AssemblyClass DoSomething endif 我可以在顶部放置 de
  • 如何生成具有精确矩的样本数据

    如何生成准确的数据 在 R 中我们可以选择使用rnorm从具有某些特征的总体中进行抽样 例如 平均值 0 标准差 1 但是我们如何获取数据exactly均值 0 标准差 1 这是一个简单的例子 我也对应用获取精确数据的更通用方法感兴趣 例如
  • Laravel 5:使用 csrf 强制验证 [GET] 请求

    默认情况下 Laravel 5 验证并匹配所有 POST 请求的 令牌 如何告诉 L5 也验证 GET PUT 和删除 请求 gt 阻止任何没有有效令牌的请求 thanks 您可以创建自己的中间件来处理它并替换默认的 Laravel ver
  • AngularJs错误无法读取未定义的属性“then”

    这是模块 function app Module Description angular module app 我有这个服务 function use strict angular module app factory homeservic
  • 在 C# 中使用 Windows 应用程序执行 http 方法

    有许多网站在表单提交时调用脚本并使用 HTTP POST 或 GET 传递参数 使用 Web 调试器我发现正在传递的参数 现在我希望通过我的 C Windows 应用程序做同样的事情 我怎样才能实现这样的功能 我目前正在 C 中使用 Htt
  • ggplot2 生成的切片图

    我想知道是否可以将图形分别切片为使用 ggsave 生成 的 png 文件 如果我不想使用默认的图例或标题并将其设置为 FALSE 则会留下大量空白 那么有没有一种 R 方法可以将文件剪切到图形本身上方和下方几个像素呢 提前谢谢 你可以改变
  • 使用 str.contains 忽略 NaN

    我想找到包含字符串的行 如下所示 DF DF col str contains foo 但是 这会失败 因为某些元素是 NaN ValueError 无法使用包含 NA NaN 值的向量进行索引 所以我诉诸于混淆 DF DF col not
  • 安装 OS X Mavericks 后出现 RMagick 错误

    我在 OS X Mountain Lion 中安装了 RMagick 并完美运行 我刚刚安装了 OS X Mavericks 当我尝试运行时rails s 我收到此错误 rvm gems ruby 2 0 0 p0 myapp gems a
  • BProlog 8.1 中的制表性能不均匀

    我用表格功能做了一些实验b prolog8 1 版本 我对观察到的性能感到非常惊讶 这是我使用的代码 它计算的数量Collatz steps N减少一些正整数所需的I向下1 table posInt CollatzSteps 2 remov
  • 尝试通过原始 IP 数据包发送数据时的 EMSGSIZE

    我的代码将原始 IP 数据包发送到12 12 12 12并失败 因为EMSGSIZE 我认为它根据以太网 MTU 限制我的数据包 但它应该发送 我尝试将数据包发送至127 0 0 1这工作得很好 但是当我将数据包发送到非本地 IP 时 就会
  • 具有多个分隔符的 sql-maven-plugin

    我正在使用 sql maven plugin 在多个数据库上执行一些 MySQL 脚本 我想在同一个 SQL 脚本中部署表 数据 触发器 事件和存储过程 我的行分隔符有问题 因为对于 INSERT 或 CREATE 我使用 但对于我的触发器
  • ServicePointManager.DefaultConnectionLimit 返回 Int32.MaxValue

    出于诊断目的 我正在记录 ServicePointManager DefaultConnectionLimit 然而奇怪的是 它似乎返回 Int32 MaxValue 即 2147483647 这似乎与MSDN 文档就此主题而言 Servi
  • 在信号处理的上下文中到底哪些变量需要 sig_atomic_t ?

    这是一个简单的玩具程序 使用volatile sig atomic t include
  • 将 PHP 与 asp.net / asp.net-mvc 集成的最佳方式

    巧合的是 这个问题在上周出现了两次 客户有一个想要保留的现有 PHP 网站 他们还拥有或即将拥有一些 ASP net 网页 希望将其集成到现有站点中 使其显示为单个站点 我们想到了以下几种可能性 使用 IFrame 将所有 html 菜单复