.net core 2.0没有了request.inputstream但是可以用request.body替代
dataset 没有查看视图了
控制台程序默认生成是dll 文件

 public string Post()
{
Request.EnableRewind(); //String key1 = Request.Query["key1"];//获取url字符串
//String key2 = Request.Form["key2"];//获取表单
// String key3 = Request.Cookies["key3"];//获取cookie
// String key4 = Request.Headers["key4"];//获取http头参数
var mmm = accessor.HttpContext.Request.Form["abc"];
var dic = accessor.HttpContext.Request.Headers; string temp = ""; foreach (var item in dic.Keys)
{
temp += item + ":" + dic[item] + "---";
}
return temp+"我的:"+mmm+"||||||:"+ getstring();
}

  

  private string getstring()
{
var postParamsString = "";
using (var ms = new MemoryStream())
{
Request.Body.CopyTo(ms);
var b = ms.ToArray();
postParamsString = Encoding.UTF8.GetString(b);
}
return postParamsString;
}
public static string Post(string url, string param, string encoding = "utf-8")
{
string result = string.Empty;
try
{
Encoding myEncoding = Encoding.GetEncoding(encoding);
HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(new Uri(url));
webReq.Method = "POST";
webReq.Headers.Add("APP_KEY", "cdd20190808"); //添加额外参数
webReq.Headers.Add("NONCE", new Guid().ToString());
webReq.Headers.Add("SIGN", "cdd2019080899999");
webReq.ContentType = "application/x-www-form-urlencoded";
if (!string.IsNullOrWhiteSpace(param))
{
byte[] byteArray = myEncoding.GetBytes(param); //转化
webReq.ContentLength = byteArray.Length;
Stream newStream = webReq.GetRequestStream();
newStream.Write(byteArray, , byteArray.Length);//写入参数
newStream.Close();
}
HttpWebResponse response = (HttpWebResponse)webReq.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.Default);
result = sr.ReadToEnd();
sr.Close();
response.Close();
}
catch (Exception ex)
{ }
return result;
}

.NET Core api部署在IIS上405-Method Not Allowed

使用.net core api作为接口对外提供数据,在IIS Express上测试没有发现问题,部署到IIS后出现了405-Method Not Allowed。( 请求方式为DELETE ) .如下图:

由上图的错误得知,此问题应该是IIS未允许当前请求方式。首先查看aspNetCore在IIS中是否限制了请求方式,经过查看并未发现不被允许的请求方式。处理程序映射=>aspNetCore

通过了解 IIS拒绝PUT和DELETE请求是由默认注册的一个名为WebDAVModule的自定义HttpModule导致的。WebDAV的全称为Web-based Distributed Authoring and Versioning,它是一个在多用户之间辅助协同编辑和管理在线文档的HTTP扩展。该扩展使应用程序可以直接将文件写到Web Server上,同时支持文件的加锁和版本控制。微软是推动WebDAV成为一个标准的主导力量,它自己利用自定义的HttpModule实现了IIS针对WebDAV的支持。但是这个默认注册(注册名称为WebDAVModule)会拒绝HTTP方法为PUT和DELETE的请求,如果我们的站点不需要提供针对WebDAV的支持,解决这个问题最为直接的方式就是利用如下配置将注册的HttpModule移除即可


<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<remove name="WebDAVModule" />
</modules>
</system.webServer>

或者


<modules runAllManagedModulesForAllRequests="true" runManagedModulesForWebDavRequests="true" >
<remove name="WebDAVModule" />
</modules>

.NET Core下dev下是没有web.config,只有发布后才生成,这就导致每次发布都要修改。 这样非常不方便。如果没有使用到WebDAV ,可以直接移除这个模块。卸载程序=》启用或关闭Windows功能=>Internet Information Service=>万维网服务=>常见HTTP功能=>WEBDAV发布。

参考

https://www.cnblogs.com/dudu/p/9190747.html

https://www.cnblogs.com/hkyyqqq/p/10429224.html

https://www.cnblogs.com/dogtwo0214/p/10177403.html

https://www.skyfinder.cc/2019/06/12/netcoreapiiis405/

NetCore与 NET Framework 不同的地方的更多相关文章

  1. 【NetCore】依赖注入的一些理解与分享

    依赖注入 DI 前言 声明:我是一个菜鸟,此文是自己的理解,可能正确,可能有误.仅供学习参考帮助理解,如果直接拷贝代码使用造成损失概不负责. 相关的文章很多,我就仅在代码层面描述我所理解的依赖注入是个 ...

  2. .NET平台系列12 .NET未来之开源.NET Core

    系列目录     [已更新最新开发文章,点击查看详细] 微软于2014年11月推出了.NET Core 1.0..NET Core的目标是从我们在过去12年中对.NET Framework的构建.交付 ...

  3. asp.net url重写相关技术问题整理

    1.IIS7配置URL重写需要注意系统是32位还是64位的 在IIS7配置URL重写的时候,需要添加“脚本映射”,如果是64位系统,会有两个地方存放.net framework分别是32位系统和64位 ...

  4. 【iOS】单例模式

    单例模式在软件开发中经常用到,在iOS系统framework也很多地方用到单例模式,例如 [NSUserDefaults standardUserDefaults], [NSBundle mainBu ...

  5. C# 创建线程的简单方式:异步委托 .

    定义一个委托调用的方法:TakesAWhile //定义委托要引用的方法 private static int TakesAWhile(int data, int ms) { Console.Writ ...

  6. windows类书的学习心得

    原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千 ...

  7. 6、二、App Components(应用程序组件):1、Intents and Intent Filters(意图和意图过滤器)

    1.Intents and Intent Filters(意图和意图过滤器) 1.0.Intents and Intent Filters(意图和意图过滤器) An Intent is a messa ...

  8. spring Aop概念

    面向切面编程(AOP)通过提供另外一种思考程序结构的途经来弥补面向对象编程(OOP)的不足.在OOP中模块化的关键单元是类(classes),而在AOP中模块化的单元则是切面.切面能对关注点进行模块化 ...

  9. C#基础之--线程、任务和同步:一、异步委托

    创建线程的一种简单方式是定义一个委托,并异步调用它.委托是方法的类型安全的引用. Delegate还支持异步地调用方法.在后台Delegate类会创建一个执行任务的线程. 为了说明委托的异步特性,从一 ...

随机推荐

  1. Go 互斥锁(sync.Mutex)和 读写锁(sync.RWMutex)

    什么时候需要用到锁? 当程序中就一个线程的时候,是不需要加锁的,但是通常实际的代码不会只是单线程,所以这个时候就需要用到锁了,那么关于锁的使用场景主要涉及到哪些呢? 多个线程在读相同的数据时 多个线程 ...

  2. Web - 前端 Vue.js (1)

    Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的.相比于Angular.js,Vue.js提供了更加简洁.更易于理解的API,使得我们能够快速地上手并使 ...

  3. js入门之字符串常用的方法

    一. 概念理解基本包装类型 1. 基本包装类型 三种基本包装类型 String var s = new String('123dddd'); Number Boolean 简单类型没有方法和属性 之所 ...

  4. sql sever2008 R2 检测到索引可能已损坏。请运行 DBCC CHECKDB。

    1.设置成单用户状态 USE MASTER ALTER DATABASE DBNAME SET SINGLE_USER; GO --DBNAME为修复的数据库名 2.执行修复语句,检查和修复数据库及索 ...

  5. charles 过滤指定域名

    本文参考:charles 过滤指定域名 当使用"序列视图"的时候 请求多了有些时候会看不过来,Charles 提供了一个简单的 Filter 功能,可以输入关键字来快速筛选出 UR ...

  6. Redis4.0之持久化存储

    一,redis概述与实验环境说明 1.1 什么是redis redis是一种内存型的NoSQL数据库,优点是快,常用来做缓存用  redis存储数据的方法是以key-value的形式  value类型 ...

  7. diff算法实现

    大致流程 var vnode = { tag: 'ul', attrs: { id: 'list' }, children: [{ tag: 'li', attrs: { className: 'it ...

  8. 持续集成实践---基于ant+jmeter+jenkins接口CI

    背景: 大纲: jmeter入门教程 jenkins入门教程 ant介绍 jmeter+ant脚本自动执行实践 接口测试CI实践

  9. 17 webpack中babel的配置

    在webpack中,默认只能处理一部分ES6的新语法,一些更高级的ES6语法或者ES7语法, webpack是处理不了的:这时候,就需要借助于第三方的loader,来帮助webpack处理这些高级的语 ...

  10. UML类图介绍

    一.概述 UML类图用来定义系统中的类,包括描述类的结构和类之间的关系.类图的主要作用于描述系统的静态结构. 类图的基本模型元素如下: