C# 类型或命名空间名称';用户界面';命名空间中不存在';System.Web';(是否缺少程序集引用?)

C# 类型或命名空间名称';用户界面';命名空间中不存在';System.Web';(是否缺少程序集引用?),c#,asp.net-core,system.web,C#,Asp.net Core,System.web,我有一个asp.net核心2.2项目。我想在我的项目中使用System.Web,但是当我尝试在我的控制器中使用它时,它会这样说 <Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netcoreapp2.2</TargetFramework> <AspNetCoreHostingModel>InProcess</AspNetCore

我有一个
asp.net核心2.2
项目。我想在我的项目中使用
System.Web
,但是当我尝试在我的控制器中使用它时,它会这样说

<Project Sdk="Microsoft.NET.Sdk.Web">

<PropertyGroup>
  <TargetFramework>netcoreapp2.2</TargetFramework>
  <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
</PropertyGroup>

<ItemGroup>
  <PackageReference Include="IpGeoLocation.IpGeoLocation" Version="1.0.5" />
  <PackageReference Include="Microsoft.AspNetCore.App" />
  <PackageReference Include="System.Web" />
  <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" 
  />
  <PackageReference Include="MongoDB.Driver" Version="2.7.3" PrivateAssets="All" />
  <PackageReference Include="MongoDB.Driver.Core" Version="2.7.3" PrivateAssets="All" />
  <PackageReference Include="MongoDB.Bson" Version="2.7.3" PrivateAssets="All" />
</ItemGroup>

</Project>
命名空间“System.Web”中不存在类型或命名空间名称“UI”(是否缺少程序集引用?[D:\Projects\analytics\analytics.csproj]

我有这样的project.csproj文件

<Project Sdk="Microsoft.NET.Sdk.Web">

<PropertyGroup>
  <TargetFramework>netcoreapp2.2</TargetFramework>
  <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
</PropertyGroup>

<ItemGroup>
  <PackageReference Include="IpGeoLocation.IpGeoLocation" Version="1.0.5" />
  <PackageReference Include="Microsoft.AspNetCore.App" />
  <PackageReference Include="System.Web" />
  <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" 
  />
  <PackageReference Include="MongoDB.Driver" Version="2.7.3" PrivateAssets="All" />
  <PackageReference Include="MongoDB.Driver.Core" Version="2.7.3" PrivateAssets="All" />
  <PackageReference Include="MongoDB.Bson" Version="2.7.3" PrivateAssets="All" />
</ItemGroup>

</Project>
我的助手函数如下

string ipInfoBaseUrl = "http://ipinfo.io/";
string userIpAddress = "66.54.123.13";
string ipUrl = ipInfoBaseUrl + userIpAddress;
string ipResponse = IPRequestHelper(ipUrl);
return ipResponse;
public string IPRequestHelper(string url)
{
        string checkURL = url;
        HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(url);

        HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse();

        StreamReader responseStream = new StreamReader(objResponse.GetResponseStream());

        string responseRead = responseStream.ReadToEnd();

        responseRead = responseRead.Replace("\n", String.Empty);
        responseStream.Close();
        responseStream.Dispose();

        return responseRead;
}

我正在使用VisualStudio代码。如何消除此错误?

该命名空间属于ASP.NET网页,并且不是.NET Core的一部分,因此不能在ASP.NET Core项目中使用它

您可以选择ASP.NET核心剃须刀页面或Blazor

如果您使用的是依赖于旧式.NET Framework(非核心)的第三方库,您可能希望切换回使用经典ASP.NET

对于.NET Framework中的IP地址,请使用

看起来这个包没有依赖项,但依赖于JSON.NET,所以您应该能够从ASP.NET核心使用它

更新 将该代码替换为以下代码:

public async Task<string> GetIpGeoLocationAsync(string url)
{
  using (var cl = new HttpClient())
    return await cl.GetStringAsync(url);
}
公共异步任务GetIpGeoLocationAsync(字符串url)
{
使用(var cl=new HttpClient())
return wait cl.GetStringAsync(url);
}

也可以考虑使用.< /P> < p>命名空间属于ASP.NET网页,而不是.NET内核的一部分,因此不能在ASP.NET核心项目中使用它。

您可以选择ASP.NET核心剃须刀页面或Blazor

如果您使用的是依赖于旧式.NET Framework(非核心)的第三方库,您可能希望切换回使用经典ASP.NET

对于.NET Framework中的IP地址,请使用

看起来这个包没有依赖项,但依赖于JSON.NET,所以您应该能够从ASP.NET核心使用它

更新 将该代码替换为以下代码:

public async Task<string> GetIpGeoLocationAsync(string url)
{
  using (var cl = new HttpClient())
    return await cl.GetStringAsync(url);
}
公共异步任务GetIpGeoLocationAsync(字符串url)
{
使用(var cl=new HttpClient())
return wait cl.GetStringAsync(url);
}

也可以考虑使用.< /p>为什么要使用那个命名空间?你想使用什么类?我正在实现第三方插件,根据ip地址获取用户的地理位置。所以在那篇文章中,他使用的是System.Web。那么,在asp.net中,我应该使用什么来代替System.Web?使用

HttpClient
IHttpClientFactory
代替
WebRequest
。此外,我在你的代码中没有看到任何
System.Web.UI
内容。你能用
HttpClient
转换我的
IPRequestHelper
吗,因为我不知道如何使用它。我不熟悉asp.net coreCheck说明。应可从ASP.NET核心运行。为什么要使用该命名空间?你想使用什么类?我正在实现第三方插件,根据ip地址获取用户的地理位置。所以在那篇文章中,他使用的是System.Web。那么,在asp.net中,我应该使用什么来代替System.Web?使用
HttpClient
IHttpClientFactory
代替
WebRequest
。此外,我在你的代码中没有看到任何
System.Web.UI
内容。你能用
HttpClient
转换我的
IPRequestHelper
吗,因为我不知道如何使用它。我不熟悉asp.net coreCheck说明。应该从ASP.NET核心开始工作。我正在实现第三方插件,以基于
ip地址获取用户的
地理位置。因此,在那篇文章中,他使用的是
System.Web
。因此,在
asp.net
中,我应该使用什么来代替
System.Web
?我已经更新了我的问题,请查看并建议我,在添加
服务后,如何在asp.net core 2.2中获取用户
地理位置,即(城市、国家等)。.AddHttpClient()
在我的控制器中的
startup.cs
中,我应该导入什么来使用
IHttpClientFactor
?@FahadHassan,假设您在控制器中使用
HttpClient
,将
IHttpClientFactory
添加到控制器的构造函数参数中,并将其存储在专用字段中。使用
\HttpClientFactory.CreateClient
,而不是创建一个
新的HttpClient
,请参见示例。我正在实现第三方插件,以基于
ip地址获取用户的
地理位置。因此,在那篇文章中,他使用的是
System.Web
。因此,在
asp.net
中,我应该使用什么来代替
System.Web
?我已经更新了我的问题,请查看并建议我,在添加
服务后,如何在asp.net core 2.2中获取用户
地理位置,即(城市、国家等)。.AddHttpClient()
在我的控制器中的
startup.cs
中,我应该导入什么来使用
IHttpClientFactor
?@FahadHassan,假设您在控制器中使用
HttpClient
,将
IHttpClientFactory
添加到控制器的构造函数参数中,并将其存储在专用字段中。使用
\u HttpClientFactory.CreateClient
而不是创建新的HttpClient
,请参见示例。