C# 在编译器调试 webapi服务时为什么是运行在32位模式下?

madyak 2020-05-12 11:30:45
编译选项是 anyCPU, 但此时的代码是执行在X86模式下,标志就是指针的长度是4,且调用不了64位的dll
要怎么弄才能运行在64位模式下。
开发工作 vs2017 ,用得向导生成的默认webapi项目,此时直接点运行 ( 绿三角图标 ) IIS Express(Internet Explore) 调试服务。
发现调用不了64位的dll,
...全文
400 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
LZZ0517 2023-04-18
  • 打赏
  • 举报
回复
madyak 2020-05-12
  • 打赏
  • 举报
回复
引用 1 楼 Summer_djz 的回复:
直接把目标平台改成x64

如果改为 X64 后,再运行 IIS Express(Internet Explore),会提示:
“/”应用程序中的服务器错误。未能加载文件或程序集“WebApplication2”或它的某一个依赖项。试图加载格式不正确的程序。

后面的提示还有:[BadImageFormatException: 未能加载文件或程序集“WebApplication2”或它的某一个依赖项。试图加载格式不正确的程序。]
[ConfigurationErrorsException: 未能加载文件或程序集“WebApplication2”或它的某一个依赖项。试图加载格式不正确的程序。]

[HttpException (0x80004005): 未能加载文件或程序集“WebApplication2”或它的某一个依赖项。试图加载格式不正确的程序。]


我最是怀疑我把服务改乱了,为此我专门建立一个全新的服务,没有写代码。同样不行。
我不是写C#得,但因为项目需要临时要写个 webapi 服务,没想到遇到这么多问题。
牧歌ing 2020-05-12
  • 打赏
  • 举报
回复
直接把目标平台改成x64

牧歌ing 2020-05-12
  • 打赏
  • 举报
回复
引用 8 楼 madyak 的回复:
[quote=引用 7 楼 Summer_djz 的回复:]
[quote=引用 6 楼 madyak 的回复:]
[quote=引用 4 楼 Summer_djz 的回复:]
[quote=引用 2 楼 madyak 的回复:]
[quote=引用 1 楼 Summer_djz 的回复:]
直接把目标平台改成x64

如果改为 X64 后,再运行 IIS Express(Internet Explore),会提示:
“/”应用程序中的服务器错误。未能加载文件或程序集“WebApplication2”或它的某一个依赖项。试图加载格式不正确的程序。

后面的提示还有:[BadImageFormatException: 未能加载文件或程序集“WebApplication2”或它的某一个依赖项。试图加载格式不正确的程序。]
[ConfigurationErrorsException: 未能加载文件或程序集“WebApplication2”或它的某一个依赖项。试图加载格式不正确的程序。]

[HttpException (0x80004005): 未能加载文件或程序集“WebApplication2”或它的某一个依赖项。试图加载格式不正确的程序。]


我最是怀疑我把服务改乱了,为此我专门建立一个全新的服务,没有写代码。同样不行。
我不是写C#得,但因为项目需要临时要写个 webapi 服务,没想到遇到这么多问题。[/quote]
WebApplication2应该是x84的吧


[/quote]编译时,不是可以指定运行在什么下吗。我偿试了两种 :anycpu 和 x64[/quote]

用x86能正常编译,x64不能正常编译,证明你项目虽然改成x64了,但项目还是有引用x86的dll啊,你看下你的引用
[/quote]
最初我也这样想。为此我建了个工程叫WebApplication2,用 VS2017 默认的方式,建立的空工程,只有默认的webapi 框架,还没有加一行代码。
引用的dll 也是VS自己默认加得,我没有更改过一处。

如果你有环境,可以验证一下不知道只是我有这问题,还是普遍的问题。
建立一个webapi的项目,不用改什么,直接运行。应该是没有问题得(其是运行在32位里)。但是如果改为X64,直接就运行不了了。[/quote]



用的vs2019 Asp.Net Core 3.0 选择API 创建之后用x86和x64都没问题
如果要是编译器问题,那你就换一个吧,或者修复一下,微软不可能留个这么大bug一直不修复



madyak 2020-05-12
  • 打赏
  • 举报
回复
引用 7 楼 Summer_djz 的回复:
[quote=引用 6 楼 madyak 的回复:]
[quote=引用 4 楼 Summer_djz 的回复:]
[quote=引用 2 楼 madyak 的回复:]
[quote=引用 1 楼 Summer_djz 的回复:]
直接把目标平台改成x64

如果改为 X64 后,再运行 IIS Express(Internet Explore),会提示:
“/”应用程序中的服务器错误。未能加载文件或程序集“WebApplication2”或它的某一个依赖项。试图加载格式不正确的程序。

后面的提示还有:[BadImageFormatException: 未能加载文件或程序集“WebApplication2”或它的某一个依赖项。试图加载格式不正确的程序。]
[ConfigurationErrorsException: 未能加载文件或程序集“WebApplication2”或它的某一个依赖项。试图加载格式不正确的程序。]

[HttpException (0x80004005): 未能加载文件或程序集“WebApplication2”或它的某一个依赖项。试图加载格式不正确的程序。]


我最是怀疑我把服务改乱了,为此我专门建立一个全新的服务,没有写代码。同样不行。
我不是写C#得,但因为项目需要临时要写个 webapi 服务,没想到遇到这么多问题。[/quote]
WebApplication2应该是x84的吧


[/quote]编译时,不是可以指定运行在什么下吗。我偿试了两种 :anycpu 和 x64[/quote]

用x86能正常编译,x64不能正常编译,证明你项目虽然改成x64了,但项目还是有引用x86的dll啊,你看下你的引用
[/quote]
最初我也这样想。为此我建了个工程叫WebApplication2,用 VS2017 默认的方式,建立的空工程,只有默认的webapi 框架,还没有加一行代码。
引用的dll 也是VS自己默认加得,我没有更改过一处。

如果你有环境,可以验证一下不知道只是我有这问题,还是普遍的问题。
建立一个webapi的项目,不用改什么,直接运行。应该是没有问题得(其是运行在32位里)。但是如果改为X64,直接就运行不了了。
牧歌ing 2020-05-12
  • 打赏
  • 举报
回复
引用 6 楼 madyak 的回复:
[quote=引用 4 楼 Summer_djz 的回复:]
[quote=引用 2 楼 madyak 的回复:]
[quote=引用 1 楼 Summer_djz 的回复:]
直接把目标平台改成x64

如果改为 X64 后,再运行 IIS Express(Internet Explore),会提示:
“/”应用程序中的服务器错误。未能加载文件或程序集“WebApplication2”或它的某一个依赖项。试图加载格式不正确的程序。

后面的提示还有:[BadImageFormatException: 未能加载文件或程序集“WebApplication2”或它的某一个依赖项。试图加载格式不正确的程序。]
[ConfigurationErrorsException: 未能加载文件或程序集“WebApplication2”或它的某一个依赖项。试图加载格式不正确的程序。]

[HttpException (0x80004005): 未能加载文件或程序集“WebApplication2”或它的某一个依赖项。试图加载格式不正确的程序。]


我最是怀疑我把服务改乱了,为此我专门建立一个全新的服务,没有写代码。同样不行。
我不是写C#得,但因为项目需要临时要写个 webapi 服务,没想到遇到这么多问题。[/quote]
WebApplication2应该是x84的吧


[/quote]编译时,不是可以指定运行在什么下吗。我偿试了两种 :anycpu 和 x64[/quote]

用x86能正常编译,x64不能正常编译,证明你项目虽然改成x64了,但项目还是有引用x86的dll啊,你看下你的引用


madyak 2020-05-12
  • 打赏
  • 举报
回复
引用 4 楼 Summer_djz 的回复:
[quote=引用 2 楼 madyak 的回复:]
[quote=引用 1 楼 Summer_djz 的回复:]
直接把目标平台改成x64

如果改为 X64 后,再运行 IIS Express(Internet Explore),会提示:
“/”应用程序中的服务器错误。未能加载文件或程序集“WebApplication2”或它的某一个依赖项。试图加载格式不正确的程序。

后面的提示还有:[BadImageFormatException: 未能加载文件或程序集“WebApplication2”或它的某一个依赖项。试图加载格式不正确的程序。]
[ConfigurationErrorsException: 未能加载文件或程序集“WebApplication2”或它的某一个依赖项。试图加载格式不正确的程序。]

[HttpException (0x80004005): 未能加载文件或程序集“WebApplication2”或它的某一个依赖项。试图加载格式不正确的程序。]


我最是怀疑我把服务改乱了,为此我专门建立一个全新的服务,没有写代码。同样不行。
我不是写C#得,但因为项目需要临时要写个 webapi 服务,没想到遇到这么多问题。[/quote]
WebApplication2应该是x84的吧


[/quote]编译时,不是可以指定运行在什么下吗。我偿试了两种 :anycpu 和 x64
madyak 2020-05-12
  • 打赏
  • 举报
回复
引用 3 楼 Summer_djz 的回复:
WebApplication2你这个是x86的还是x64的


设为AnyCPU时,执行的X86的代码,服务能正常运行。
设置为X64时服务就运行不起来,直接报错,指在编译器的环境里,单独发布后什么情况,还不知道。

但我需要运行在x64下,因为附带第三方东西都是64位版本
牧歌ing 2020-05-12
  • 打赏
  • 举报
回复
引用 2 楼 madyak 的回复:
[quote=引用 1 楼 Summer_djz 的回复:]
直接把目标平台改成x64

如果改为 X64 后,再运行 IIS Express(Internet Explore),会提示:
“/”应用程序中的服务器错误。未能加载文件或程序集“WebApplication2”或它的某一个依赖项。试图加载格式不正确的程序。

后面的提示还有:[BadImageFormatException: 未能加载文件或程序集“WebApplication2”或它的某一个依赖项。试图加载格式不正确的程序。]
[ConfigurationErrorsException: 未能加载文件或程序集“WebApplication2”或它的某一个依赖项。试图加载格式不正确的程序。]

[HttpException (0x80004005): 未能加载文件或程序集“WebApplication2”或它的某一个依赖项。试图加载格式不正确的程序。]


我最是怀疑我把服务改乱了,为此我专门建立一个全新的服务,没有写代码。同样不行。
我不是写C#得,但因为项目需要临时要写个 webapi 服务,没想到遇到这么多问题。[/quote]
WebApplication2应该是x84的吧


牧歌ing 2020-05-12
  • 打赏
  • 举报
回复
WebApplication2你这个是x86的还是x64的

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧