You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASHX可用WebRequestHandler但VB类文件不可用的问题求助

问题原因分析

WebRequestHandler在VB类文件中不可用,大概率是项目目标框架不一致导致的:

  • ASHX所在的Web项目通常默认基于.NET Framework(4.x版本),WebRequestHandler在该框架下属于System.Net.Http命名空间,且Web项目会自动引入必要的系统程序集。
  • 新建的VB类文件如果是在独立类库项目中,可能误选了.NET Core/.NET 5+作为目标框架——而WebRequestHandler在这些现代框架中已被废弃,不再提供。

另外也可能是程序集引用版本不匹配:即使添加了System.Net.Http引用,类库项目的引用版本和Web项目的版本不一致,也会导致类无法识别。

解决办法

方案1:统一项目目标框架

检查VB类项目的目标框架设置,修改为和ASHX所在Web项目相同的.NET Framework版本(比如4.7.2、4.8),确保System.Net.Http引用的版本一致,即可正常使用WebRequestHandler。

方案2:用HttpClientHandler替代(适配现代.NET框架)

如果无法切换到.NET Framework,或者需要兼容现代框架,使用HttpClientHandler替代WebRequestHandler,实现证书发送的代码示例如下:

Imports System.Net.Http
Imports System.Security.Cryptography.X509Certificates

Public Class api
    Public Function postAPI() As String
        ' 加载证书:可从本地PFX文件加载,或从系统证书存储获取
        Dim clientCert = New X509Certificate2("你的证书路径.pfx", "证书密码")
        
        ' 配置HttpClientHandler并添加证书
        Dim handler = New HttpClientHandler()
        handler.ClientCertificates.Add(clientCert)
        
        ' 使用handler创建HttpClient并发送请求
        Using httpClient = New HttpClient(handler)
            ' 构造请求内容(根据实际API需求调整)
            Dim requestContent = New StringContent("请求体内容", System.Text.Encoding.UTF8, "application/json")
            
            ' 发送POST请求并处理响应
            Dim response = httpClient.PostAsync("目标API地址", requestContent).Result
            response.EnsureSuccessStatusCode() ' 确保请求成功
            Return response.Content.ReadAsStringAsync().Result
        End Using
    End Function
End Class

如果证书是存储在本地计算机或当前用户的证书库中,可以用以下方式获取:

' 从证书存储加载示例
Dim store = New X509Store(StoreName.My, StoreLocation.CurrentUser)
store.Open(OpenFlags.ReadOnly)
Dim certs = store.Certificates.Find(X509FindType.FindByThumbprint, "证书指纹", False)
If certs.Count > 0 Then
    Dim clientCert = certs(0)
    ' 后续添加到handler逻辑同上
End If
store.Close()

内容的提问来源于stack exchange,提问作者genericHCU

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 22:31:15