【问题标题】:Failed to access .Net Framework 4 Web Service after GoDaddy Migration to Plesk Windows HostingGoDaddy 迁移到 Plesk Windows 主机后无法访问 .Net Framework 4 Web 服务
【发布时间】:2020-07-24 10:40:06
【问题描述】:
GoDaddy 将我的经济型 Windows 主机迁移到 Plesk Windows 主机。
静态 hmtl 页面显示正常。但是,我的 Web 服务使用带有 WCF 的 .Net 4 来提供
RESTful api 失败,显示以下配置错误:
说明:处理服务此请求所需的配置文件期间发生错误。
请查看下面的具体错误详细信息并适当修改您的配置文件。
解析器错误消息:使用注册为的部分是错误的
allowDefinition='MachineToApplication' 超出应用程序级别。
此错误可能是由于未在 IIS 中将虚拟目录配置为应用程序。
在 GoDaddy,使用 Plesk Admin,我在虚拟目录列表中看到服务的应用程序目录,
当我选择目录并单击顶部的目录属性时,
属性显示应用程序设置。所以我不知道问题可能是什么。
【问题讨论】:
标签:
.net
wcf
web-config
plesk
【解决方案1】:
我的解决方案
结果发现有两个问题:
- 应用程序目录不是虚拟目录。
- app 目录中的 Web.config 文件需要更新 connectionSettings,因为数据库服务器 IP 地址已更改。
如果有兴趣,请遵循更多详细信息。在 GoDaddy,正在使用
Plesk Admin,并且
myapp 是虚拟目录的名称:
-
我误以为app目录是虚拟目录,其实不是。
- 导航到网站与域 > 虚拟目录。
-
在页面顶部,单击创建虚拟目录,这将打开创建虚拟目录:
-
取消选中路径复选框并使用出现的文件夹图标浏览到物理路径,
这是 /httpdocs/myapp
- 将名称设置为 myapp
- 其他默认设置可能没问题。
- 点击确定
-
现在在虚拟目录页面上,您可以知道 myapp 是一个虚拟目录
因为右边三个图标中间的图标是启用的(悬停提示显示为Web目录管理)。
-
注意:要在 Chrome 浏览器中查看 Web 服务器异常的详细信息,
myapp 目录下的 Web.config 文件需要有以下元素
在 部分:
-
现在在 Chrome 浏览器 > 设置 > 更多工具 > 开发工具 > 网络选项卡中,
您可以看到导致错误的请求。
-
单击请求以获取详细信息和
单击预览选项卡以查看有关异常的信息。
-
在 myapp/Web.config 中设置数据库服务器的 connectionString 设置:
-
服务器的 IP 地址可以在
数据库 > 您的数据库 > 连接信息
中找到
显示的主机(服务器)ip 包括一个端口,例如n.n.n.n:端口。仅使用不带端口的 n.n.n.n。
-
如果需要,为您的数据库设置密码:数据库>您的数据库>单击用户
数据库用户页面显示在您设置新密码的位置。
-
编辑 Web.config:文件 > httpsdocs/myapp/Web.config > 菜单图标 > 在代码编辑器中编辑
在 部分,为您的连接字符串更改:
- Server=n.n.n.n 其中 n.n.n.n 是没有任何端口的数据库服务器 ip。
- Password=xxx 其中 xxx 是数据库的密码。
【解决方案2】:
要解决上述问题,您只需要求 Godaddy 将您的目录转换为 IIS 中的应用程序。由于在共享主机上,您无法登录服务器,因此您必须询问他们。或者在控制面板中,请在您的 Plesk 控制面板上将其创建为虚拟目录。