在Windows Vista上安装“WCF HTTP激活”失败了吗?

时间:2021-02-20 06:31:56

This is only remotely development related, but basically I wanted to install the MS Azure SDK which relies on an installed IIS 7, ASP.Net but also a working installation of the 'WCF HTTP Activation' component.

这只与远程开发相关,但基本上我想安装MS Azure SDK,它依赖于已安装的IIS 7,ASP.Net以及“WCF HTTP激活”组件的工作安装。

Now following the article on MSDN, I always get the following error:

现在关注MSDN上的文章,我总是收到以下错误:

在Windows Vista上安装“WCF HTTP激活”失败了吗?

Does anyone have an idea what I'm missing or what I should do? The error message is not very self-explaining and I am a tad lost here.. Software version wise Vista is SP2, Visual Studio 2008 SP1 & .Net 3.5 SP1 is also installed..

有没有人知道我缺少什么或我应该做什么?错误消息不是很自我解释,我在这里丢失了..软件版本明智的Vista是SP2,Visual Studio 2008 SP1和.Net 3.5 SP1也安装..

Update: Oh and the Visual Studio 2010 / .Net 4 beta. Might the later have something to do with it?

更新:哦和Visual Studio 2010 / .Net 4 beta。可能后者与它有关吗?

Any ideas / suggestions?

有什么想法/建议吗?

3 个解决方案

#1


1  

Oook here's the deal: when you install the .Net 4.0 beta, for some reason it also overwrites at least one of your .Net 3.0 (WCF) files, at least on 64bit systems, namely

Oook就是这样的交易:当您安装.Net 4.0 beta时,由于某种原因它至少会在64位系统上覆盖至少一个.Net 3.0(WCF)文件,即

"c:\windows\microsoft.net\framework64\v3.0\Windows Communication Foundation\SMConfigInstaller.EXE".

“c:\ windows \ microsoft.net \ framework64 \ v3.0 \ Windows Communication Foundation \ SMConfigInstaller.EXE”。

So the bad part is, with this new version in place you cannot longer enable the "WCF HTTP Activation" Feature of Vista and Win7 and even worse, uninstalling .Net 4 beta does not restore the original version.

所以不好的是,随着这个新版本的到位,你无法再启用Vista和Win7的“WCF HTTP激活”功能,更糟糕的是,卸载.Net 4 beta无法恢复原始版本。

Meh.

So the only manual workaround is to get your hands on an actual pre .net 4 beta version of the folder above and restore the file(s) manually.

因此,唯一的手动解决方法是获取上述文件夹的实际pre .net 4 beta版本并手动恢复文件。

-J

#2


0  

I had a problem like this where the machine.config file was corrupted; some component in .NET modified it and inserted a null byte somewhere. If you have powershell installed, you can quickly check the validity of the config like so:

我遇到了这样的问题,其中machine.config文件已损坏; .NET中的某个组件对其进行了修改并在某处插入了一个空字节。如果你安装了powershell,你可以快速检查配置的有效性,如下所示:

[xml](gc $env:windir\Microsoft.NET\Framework\v2.0.50727\config\machine.config)

It will fail to parse if corrupted.

如果损坏将无法解析。

-Oisin

#3


0  

CAUTION!!! I would caution against ever messing with framework files manually like the above poster suggested...that's just asking for trouble.

警告!!!我会警告不要像上面提到的海报一样手动搞乱框架文件...那只是在惹麻烦。

I had a similar issue which I have now solved without touching with any framework files.

我有一个类似的问题,我现在解决了,而没有触及任何框架文件。

Background: I was trying to get my IIS hosted WCF service running with a net.tcp endpoint on Windows 7. I had installed IIS after installing VS2010 beta2. Although my service was working over HTTP, when my client tried to connect over net.tcp it would get the completely ridiculous error: "FatalExecutionEngineError was detected" No help at all!!!

背景:我试图在Windows 7上使用net.tcp端点运行我的IIS托管WCF服务。我在安装VS2010 beta2后安装了IIS。虽然我的服务是通过HTTP工作,但当我的客户端尝试通过net.tcp连接时,它会得到完全荒谬的错误:“检测到FatalExecutionEngineError”根本没有帮助!

I think the error was being thrown because my WCF client was unable to connect to the server. Normally a connection-related exception should be thrown, but I suspect that I got the fatal error because my service request consisted of a custom Message with a Stream.

我认为错误是因为我的WCF客户端无法连接到服务器而引发的。通常应抛出与连接相关的异常,但我怀疑是因为我的服务请求包含带有Stream的自定义消息而导致致命错误。

Anyways, I finally got it working and I believe the key was to re-install the WCF HTTP activation along with aspnet.

无论如何,我终于让它工作了,我相信关键是重新安装WCF HTTP激活以及aspnet。

  1. Go to the Control Panel
  2. 转到“控制面板”

  3. Click on Programs and Features
  4. 单击“程序和功能”

  5. Click on Turn Windows Features on/off
  6. 单击打开/关闭打开Windows功能

  7. Uncheck Microsoft.Net Framework 3.5.1 (and the two options beneath)
  8. 取消选中Microsoft.Net Framework 3.5.1(以及下面的两个选项)

  9. Click OK to restart
  10. 单击确定以重新启动

  11. Follow steps 1-3 then check all 3 options and restart
  12. 按照步骤1-3,然后检查所有3个选项并重新启动

I then registered IIS by running the following (as admin): %windir%\Microsoft.NET\Framework\v4.0.21006\aspnet_regiis.exe -iru

我通过运行以下(作为管理员)注册IIS:%windir%\ Microsoft.NET \ Framework \ v4.0.21006 \ aspnet_regiis.exe -iru

Sorry for the long story, but I wanted all the "key words" in there for google to help other folks that might run into the same or similar problem.

对于长篇故事感到抱歉,但我希望Google中的所有“关键词”能够帮助其他可能遇到相同或类似问题的人。

#1


1  

Oook here's the deal: when you install the .Net 4.0 beta, for some reason it also overwrites at least one of your .Net 3.0 (WCF) files, at least on 64bit systems, namely

Oook就是这样的交易:当您安装.Net 4.0 beta时,由于某种原因它至少会在64位系统上覆盖至少一个.Net 3.0(WCF)文件,即

"c:\windows\microsoft.net\framework64\v3.0\Windows Communication Foundation\SMConfigInstaller.EXE".

“c:\ windows \ microsoft.net \ framework64 \ v3.0 \ Windows Communication Foundation \ SMConfigInstaller.EXE”。

So the bad part is, with this new version in place you cannot longer enable the "WCF HTTP Activation" Feature of Vista and Win7 and even worse, uninstalling .Net 4 beta does not restore the original version.

所以不好的是,随着这个新版本的到位,你无法再启用Vista和Win7的“WCF HTTP激活”功能,更糟糕的是,卸载.Net 4 beta无法恢复原始版本。

Meh.

So the only manual workaround is to get your hands on an actual pre .net 4 beta version of the folder above and restore the file(s) manually.

因此,唯一的手动解决方法是获取上述文件夹的实际pre .net 4 beta版本并手动恢复文件。

-J

#2


0  

I had a problem like this where the machine.config file was corrupted; some component in .NET modified it and inserted a null byte somewhere. If you have powershell installed, you can quickly check the validity of the config like so:

我遇到了这样的问题,其中machine.config文件已损坏; .NET中的某个组件对其进行了修改并在某处插入了一个空字节。如果你安装了powershell,你可以快速检查配置的有效性,如下所示:

[xml](gc $env:windir\Microsoft.NET\Framework\v2.0.50727\config\machine.config)

It will fail to parse if corrupted.

如果损坏将无法解析。

-Oisin

#3


0  

CAUTION!!! I would caution against ever messing with framework files manually like the above poster suggested...that's just asking for trouble.

警告!!!我会警告不要像上面提到的海报一样手动搞乱框架文件...那只是在惹麻烦。

I had a similar issue which I have now solved without touching with any framework files.

我有一个类似的问题,我现在解决了,而没有触及任何框架文件。

Background: I was trying to get my IIS hosted WCF service running with a net.tcp endpoint on Windows 7. I had installed IIS after installing VS2010 beta2. Although my service was working over HTTP, when my client tried to connect over net.tcp it would get the completely ridiculous error: "FatalExecutionEngineError was detected" No help at all!!!

背景:我试图在Windows 7上使用net.tcp端点运行我的IIS托管WCF服务。我在安装VS2010 beta2后安装了IIS。虽然我的服务是通过HTTP工作,但当我的客户端尝试通过net.tcp连接时,它会得到完全荒谬的错误:“检测到FatalExecutionEngineError”根本没有帮助!

I think the error was being thrown because my WCF client was unable to connect to the server. Normally a connection-related exception should be thrown, but I suspect that I got the fatal error because my service request consisted of a custom Message with a Stream.

我认为错误是因为我的WCF客户端无法连接到服务器而引发的。通常应抛出与连接相关的异常,但我怀疑是因为我的服务请求包含带有Stream的自定义消息而导致致命错误。

Anyways, I finally got it working and I believe the key was to re-install the WCF HTTP activation along with aspnet.

无论如何,我终于让它工作了,我相信关键是重新安装WCF HTTP激活以及aspnet。

  1. Go to the Control Panel
  2. 转到“控制面板”

  3. Click on Programs and Features
  4. 单击“程序和功能”

  5. Click on Turn Windows Features on/off
  6. 单击打开/关闭打开Windows功能

  7. Uncheck Microsoft.Net Framework 3.5.1 (and the two options beneath)
  8. 取消选中Microsoft.Net Framework 3.5.1(以及下面的两个选项)

  9. Click OK to restart
  10. 单击确定以重新启动

  11. Follow steps 1-3 then check all 3 options and restart
  12. 按照步骤1-3,然后检查所有3个选项并重新启动

I then registered IIS by running the following (as admin): %windir%\Microsoft.NET\Framework\v4.0.21006\aspnet_regiis.exe -iru

我通过运行以下(作为管理员)注册IIS:%windir%\ Microsoft.NET \ Framework \ v4.0.21006 \ aspnet_regiis.exe -iru

Sorry for the long story, but I wanted all the "key words" in there for google to help other folks that might run into the same or similar problem.

对于长篇故事感到抱歉,但我希望Google中的所有“关键词”能够帮助其他可能遇到相同或类似问题的人。