0

GoDaddy 将我的经济型 Windows 主机迁移到 Plesk Windows 主机。静态 hmtl 页面显示正常。但是,我使用 .Net 4 和 WCF 提供 RESTful api 的 Web 服务失败,显示以下配置错误:

说明:处理服务此请求所需的配置文件期间发生错误。请查看下面的具体错误详细信息并适当地修改您的配置文件。

解析器错误消息:在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的部分是错误的。此错误可能是由未在 IIS 中配置为应用程序的虚拟目录引起的。
在 GoDaddy,使用 Plesk Admin,我在虚拟目录列表中看到服务的应用程序目录,当我选择目录并单击顶部的目录属性时,属性会显示应用程序设置。所以我不知道问题可能是什么。

4

2 回答 2

1

我的解决方案

结果发现有两个问题:
  1. app 目录不是虚拟目录。
  2. app 目录中的 Web.config 文件需要更新 connectionSettings,因为数据库服务器 IP 地址已更改。
如果有兴趣,请遵循更多详细信息。在 GoDaddy,正在使用 Plesk Admin , myapp是虚拟目录的名称:
  1. 我错误地认为应用程序目录不是虚拟目录。
    • 导航到网站与域 > 虚拟目录。
    • 在页面顶部,单击创建虚拟目录,这将打开创建虚拟目录:
      • 取消选中路径复选框并使用出现的文件夹图标浏览到物理路径,即 /httpdocs/myapp
      • 将名称设置为 myapp
      • 其他默认设置可能没问题。
      • 点击确定
    • 现在在 Virtual Directory 页面上,您可以看出 myapp 是一个虚拟目录,因为右侧三个图标的中间图标已启用(悬停提示显示为 Web 目录管理)。
    • 注意:要在 Chrome 浏览器中查看 Web 服务器异常的详细信息,myapp 目录中的 Web.config 文件需要在 <system.web> 部分具有以下元素:
      • <customErrors mode="关闭"/>
      • 现在在 Chrome 浏览器 > 设置 > 更多工具 > 开发工具 > 网络选项卡中,您可以看到导致错误的请求。
      • 单击请求以获取详细信息,然后单击预览选项卡以查看有关异常的信息。
  2. 在 myapp/Web.config 中设置数据库服务器的 connectionString 设置:
    • 服务器的 ip 地址可以在
      Databases > your database > Connection Info中找到
      。显示的主机(服务器)ip 包括一个端口,egnnnn:port。仅使用不带端口的 nnnn。
    • 如果需要,为您的数据库设置密码: 数据库 > 您的数据库 > 单击用户
      显示数据库用户页面,您可以在其中设置新密码。
    • 编辑 Web.config:文件 > httpsdocs/myapp/Web.config > 菜单图标 > 在代码编辑器中编辑
      在 <connectStrings> 部分中,为您的连接字符串更改:
      • Server=nnnn 其中 nnnn 是没有任何端口的数据库服务器 ip。
      • Password=xxx 其中 xxx 是数据库的密码。

于 2020-04-11T17:57:15.043 回答
1

要解决上述问题,您只需要求 Godaddy 将您的目录转换为 IIS 中的应用程序。由于在共享主机上,您无法登录服务器,因此您必须询问他们。或者在控制面板中,请在您的 Plesk 控制面板上将其创建为虚拟目录。

于 2020-04-13T07:26:19.800 回答