VS2012已经全面切换到使用NuGet这个第三方开源工具来管理项目包和引用模块了,使用VS2012开发,都要装NuGet插件(官网:http://nuget.org),进官网点安装就进入了微软的下载页面,选择vs2012版本的NuGet.Tools.vsix文件,双击安装就可以了。 from:http://www.cxyclub.cn/n/20504/
View Details每次我安装AUTO cad2012都会提示我必须要更新安装.NET framework 4.0,但总是提示安装失败。经过反复的学习与测试,我终于知道如何处理了。 找到安装包双击安装; 接受许可条款点击安装; 安装提示双进度条,安装成功将会提示你安装成功。 安装失败是,安装进度条会变成安装回滚条,将会提示安装未完成。 解决方法:开始——运行——输入cmd——回车——在打开的窗口中输入net stop WuAuServ 开始——运行——输入%windir% 找到有个叫SoftwareDistribution的文件夹,把它重命名为SDold 开始——运行——输入cmd——回车——在打开的窗口中输入net start WuAuServ 开始——运行——输入regedit——回车 找到注册表,HKEY_LOCAL_MACHINE\SOFWARE\Microsoft\Internet Explorer下的MAIN子键,右击main后,在上面菜单中找到“编辑”--“权限”,点击后就会出现“完全控制”等字样,勾上即可放心安装。 一般使用ghost系统都会出现这种问题,由于开发系统默认的权限设置导致这种情况无发安装。 FROM:http://jingyan.baidu.com/article/00a07f3892376982d028dc2a.html
View Details————————— Microsoft Visual Studio ————————— 未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”包。 此问题可能是由配置更改或安装另一个扩展导致的。可以通过查看文件“C:\Users\用户名\AppData\Roaming\Microsoft\VisualStudio\11.0\ActivityLog.xml”来获取详细信息。 是否继续显示此错误消息? ————————— 是(Y) 否(N) ————————— 解决方案:"Microsoft Visual Studio 2012"->"Visual Studio Tools"->"VS2012 开发人员命令提示"->输入"devenv /resetuserdata " FROM:http://www.cnblogs.com/autumn/p/3452369.html
View Details介绍 当一个 Webform 开发者转做 MVC 开发的时候, 他会发现, 许多自己喜欢的东东不见了. 没有代码隐藏模型(behind code), 没有 view state, 没有页面生命周期(page life cycle), 没有服务端控件(server control). 你可以看这篇文章, 里头有讲 MVC 比 ASP.NET Webform少了哪些东西. 没有了这些易用的服务端控件, 相信许多人都会伤心欲绝. 最令人怀念的, 恐怕要属 gridview / datagrid 控件. 作为一个 ASP.NET Webform 开发者, 我能理解, 这种将 GridView 控件拖放到 form 里头, 然后给它绑定数据, 一会的功夫, 就能看到数据在表格中显示的开发过程, 有多爽, 多让人着迷. MVC 用 “WebGrid” 类代替 GridView . 这是个类, 再说一次, 这是个类. 别指望它能像, 有可视化快速开发工具支持的 gridview / data grid 控件那么好用. 不过要比用 HTML 的表格好的多, 起码省时间. 如果你想知道, 我们为什么不做可视化快速开发工具支持 MVC, 读下这篇文章 ASP.NET Webform 对比 ASP.NET MVC. 本文通过六个重要技巧, 教你如何更有效的使用 WebGrid。 一个简单的 MVC WebGrid 例子 “WebGrid” 的用途是, 显示集合(collection )中的数据. 集合可能是强类型列表(strong typed list), 也可能是泛型, 或其他类型. 我们先来看一个简单的例子. 这个例子将强类型对象添加到一个集合中, 然后用 “WebGrid” 显示出来. 下列代码创建一个名叫 “Custs” 列表, 然后把 “Customer” 类的 对象加进去. ? 1 2 […]
View Details1.什么是伪静态?使用伪静态的作用是什么?
定义:动态网页通过重写URL的方法实现去掉动态网页的参数,但在实际的网页目录中并没有必要实现存在重写的页面。
View DetailsThe most common problem encountered when trying to get CORS working in IIS is WebDAV. WebDAV is installed as both a module and a handler. It wants to process OPTIONS requests but doesn’t know what to do for CORS (especially if you’re using the CORS support fromThinktecture.IdentityModel). The fix is to remove both the module and handler in web.config. The other common problem when using the CORS support from Thnktecture.IdentityModel is that the handler for .NET code (the ExtensionlessUrlHandler) by default only allows GET, POST, HEAD and DEBUG […]
View Details一个web项目开发已完成,测试也通过,但是,bug是测不完的,特别是在一个大的网络环境下。那么,我们就应该记录这些错误,然后改正。这里,我的出错管理页面是在global.asax里面的,利用里面的Application_Error函数。 Global.asax代码: <%@ Application Language="C#" %> <script runat="server"> void Application_Start(object sender, EventArgs e) { // 在应用程序启动时运行的代码 } void Application_End(object sender, EventArgs e) { // 在应用程序关闭时运行的代码 } void Application_Error(object sender, EventArgs e) { // 在出现未处理的错误时运行的代码 // 在出现未处理的错误时运行的代码 Exception objErr = Server.GetLastError().GetBaseException(); string error = string.Empty; string errortime = string.Empty; string erroraddr = string.Empty; string errorinfo = string.Empty; string errorsource = string.Empty; string errortrace = string.Empty; error += "发生时间:" + System.DateTime.Now.ToString() + "<br>"; errortime = "发生时间:" + System.DateTime.Now.ToString(); error += "发生异常页: " + Request.Url.ToString() + "<br>"; erroraddr = […]
View Details首先说说为什么要进行日志记录。在一个完整的程序系统里面,日志系统是一个非常重要的功能组成部分。它可以记录下系统所产生的所有行为,并按照某种规范表达出来。我们可以使用日志系统所记录的信息为系统进行排错,优化系统的性能,或者根据这些信息调整系统的行为。 Log4net是一个很著名的开源的日志记录组件。官方网址为:http://logging.apache.org/log4net/ ,使用Log4net能够很简单的为我们的程序添加日志记录功能。下面我们先通过一个网站例子来说明如何在.net中使用log4net。 创建日志记录步骤 第一步, 当然是添加log4net.dll的引用啦,我这里提供一个log4net的dll文件,懒得去官网下的可以到这里下http://www.vdisk.cn/down/index/7509396A7366 第二步, 在AssemblyInfo.cs文件中添加下面一句话: 1 [assembly: log4net.Config.XmlConfigurator(ConfigFile = "Web.config", Watch = true)] 这句话的意思是log4net会自动寻找配置文件App.config或Web.config从而获得并加载其中的配置信息。如果想log4net随时监视配置文件以便重新加载的话就要这样写按照上面一样写(winform程序ConfigFile为App.config)。 第三步, 配置Web.config。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 |
<configuration> <configSections> <!--注意:这里需要添加--> <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/> </configSections> <connectionStrings> <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" /> </connectionStrings> <!--注意:这里需要添加--> <log4net> <!--定义输出到文件中--> <appender name="LogFileAppender" type="log4net.Appender.FileAppender"> <!--定义文件存放位置--> <file value="C:\log.txt" /> <appendToFile value="true" /> <rollingStyle value="Date" /> <datePattern value="yyyyMMdd-HH:mm:ss" /> <layout type="log4net.Layout.PatternLayout"> <!--输出格式--> <!--样例:2008-03-26 13:42:32,111 [10] INFO Log4NetDemo.MainClass [(null)] - info--> <conversionPattern value="记录时间:%date 线程ID:[%thread] 日志级别:%-5level 出错类:%logger property:[%property{NDC}] - 错误描述:%message%newline" /> </layout> </appender> <!--定义输出到控制台命令行中--> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> </layout> </appender> <!--定义输出到windows事件中--> <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender"> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> </layout> </appender> <!--定义输出到数据库中,这里举例输出到Access数据库中,数据库为C盘的log4net.mdb--> <appender name="AdoNetAppender_Access" type="log4net.Appender.AdoNetAppender"> <connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:log4net.mdb" /> <commandText value="INSERT INTO LogDetails ([LogDate],[Thread],[Level],[Logger],[Message]) VALUES (@logDate, @thread, @logLevel, @logger,@message)" /> <!--定义各个参数--> <parameter> <parameterName value="@logDate" /> <dbType value="String" /> <size value="240" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date" /> </layout> </parameter> <parameter> <parameterName value="@thread" /> <dbType value="String" /> <size value="240" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%thread" /> </layout> </parameter> <parameter> <parameterName value="@logLevel" /> <dbType value="String" /> <size value="240" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%level" /> </layout> </parameter> <parameter> <parameterName value="@logger" /> <dbType value="String" /> <size value="240" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%logger" /> </layout> </parameter> <parameter> <parameterName value="@message" /> <dbType value="String" /> <size value="240" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%message" /> </layout> </parameter> </appender> <!--定义日志的输出媒介,下面定义日志以四种方式输出。也可以下面的按照一种类型或其他类型输出。--> <root> <!--文件形式记录日志--> <appender-ref ref="LogFileAppender" /> <!--控制台控制显示日志--> <appender-ref ref="ConsoleAppender" /> <!--Windows事件日志--> <!--<appender-ref ref="EventLogAppender" />--> <!-- 如果不启用相应的日志记录,可以通过这种方式注释掉 <appender-ref ref="AdoNetAppender_Access" /> --> </root> </log4net> <system.web> <compilation debug="true" targetFramework="4.0" /> <httpModules> <add name="fileUpload" type="WebApplication3.ProcessFileModule"/> </httpModules> <authentication mode="Forms"> <forms loginUrl="~/Account/Login.aspx" timeout="2880" /> </authentication> <membership> <providers> <clear/> <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" /> </providers> </membership> <profile> <providers> <clear/> <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/> </providers> </profile> <roleManager enabled="false"> <providers> <clear/> <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" /> <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" /> </providers> </roleManager> <httpRuntime maxRequestLength="10240000"/> </system.web> <system.webServer> <modules runAllManagedModulesForAllRequests="true"/> </system.webServer> </configuration> |
上面这段配置取自周公,配置的说明上面已经注释的比较详细了。 第四步, 在程序中记录信息。我们在项目下Default.aspx的Page_Load方法加入如下代码:
1 2 3 |
//获得log4net实例 ILog log = log4net.LogManager.GetLogger("LogFileAppender"); log.Info("Default.aspx下面的PageLoad方法被执行"); |
然后运行项目,可以发现在c:\log4netfile.txt中已经记录了一条日志信息:
1 |
记录时间:2011-04-21 21:26:17,729 线程ID:[4] 日志级别:INFO 出错类:LogFileAppender property:[(null)] - 错误描述:Default.aspx下面的PageLoad方法被执行 |
通过上面这几步我想您已经能够为程序创建一些简单日志记录功能了。下面我们再来详细说说log4net其他的一些使用方法与特点。 log4net详细说明 这里我通过问答的形式来说明log4net的一些应用。 1.log4net总共有几种记录方式,每种方式该如何配置与使用? Log4net目前支持的输出方式包括:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
1 AdoNetAppender 将日志记录到数据库中。可以采用SQL和存储过程两种方式。 2 AnsiColorTerminalAppender 在ANSI 窗口终端写下高亮度的日志事件。 3 AspNetTraceAppender 能用asp.net中Trace的方式查看记录的日志。 4 BufferingForwardingAppender 在输出到子Appenders之前先缓存日志事件。 5 ConsoleAppender 将日志输出到控制台。 6 EventLogAppender 将日志写到Windows Event Log. 7 FileAppender 将日志写到文件中。 8 LocalSyslogAppender 将日志写到local syslog service (仅用于UNIX环境下). 9 MemoryAppender 将日志存到内存缓冲区。 10 NetSendAppender 将日志输出到Windows Messenger service.这些日志信息将在用户终端的对话框中显示。 11 RemoteSyslogAppender 通过UDP网络协议将日志写到Remote syslog service。 12 RemotingAppender 通过.NET Remoting将日志写到远程接收端。 13 RollingFileAppender 将日志以回滚文件的形式写到文件中。 14 SmtpAppender 将日志写到邮件中。 15 TraceAppender 将日志写到.NET trace 系统。 16 UdpAppender 将日志connectionless UDP datagrams的形式送到远程宿主或以UdpClient的形式广播。 |
可以看到目前支持的方式还是很多的,我这里调几个认为常用的做个例子。 1.文件的方式我们上面已经讲过了,这里不再做例子了。 2.数据库方式: 首先,添加数据库记录appender
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
<appender name="AdoNetAppender_Access" type="log4net.Appender.AdoNetAppender"> <!--数据库连接字符串--> <connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:log4net.mdb" /> <commandText value="INSERT INTO LogDetails ([LogDate],[Thread],[Level],[Logger],[Message]) VALUES (@logDate, @thread, @logLevel, @logger,@message)" /> <!--定义各个参数--> <parameter> <parameterName value="@logDate" /> <dbType value="String" /> <size value="240" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date" /> </layout> </parameter> <parameter> <parameterName value="@thread" /> <dbType value="String" /> <size value="240" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%thread" /> </layout> </parameter> <parameter> <parameterName value="@logLevel" /> <dbType value="String" /> <size value="240" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%level" /> </layout> </parameter> <parameter> <parameterName value="@logger" /> <dbType value="String" /> <size value="240" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%logger" /> </layout> </parameter> <parameter> <parameterName value="@message" /> <dbType value="String" /> <size value="240" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%message" /> </layout> </parameter> </appender> |
然后建立c:log4net.mdb 数据库,并在代码中启用数据库记录方式:
1 2 3 |
//获得log4net实例 ILog log = log4net.LogManager.GetLogger("AdoNetAppender_Access"); log.Debug("Default.aspx下面的PageLoad方法被执行"); |
这样日志就被记录到数据库中了。 2.log4net如何过滤我想要的日志信息,比如一个日志中只记录程序错误日志? 这个需求可以通过配置filter来实现。具体操作如下: 全局方式: 这种方式会将级别应用于所有的日志输入方式。具体操作为在root节点下添加:
1 2 3 4 5 |
<!--控制级别,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF 比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录 --> <!--如果没有定义LEVEL的值,则缺省为DEBUG--> <level value="ERROR" /> |
这样对于所有的日志记录方式,所有地域ERROR级别的都不会被记录了。 单独配置级别方式: 该方式不会影响其他的日志输入方式。方法如下为,在具体的appender下添加filter:
1 2 3 4 |
<filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="ERROR" /> <param name="LevelMax" value="Fatal" /> </filter> |
这种方式可以配置记录级别的方位,如果只需要记录一种,则最大和最小设置一样就行了。 3.你上面的日志输出格式我不喜欢,如何在log4net中配置我想要的日志输出格式? log4net的输入格式定义在每个appender的layout中。具体的有以下内置可选项: %m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息 %n(new line):换行 %d(datetime):输出当前语句运行的时刻 %r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数 %t(thread id):当前语句所在的线程ID %p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等 %c(class):当前日志对象的名称,例如: %f(file):输出语句所在的文件名。 %l(line):输出语句所在的行号。 %数字:表示该项的最小长度,如果不够,则用空格填充,如“%-5level”表示level的最小宽度是5个字符,如果实际长度不够5个字符则以空格填充。 通过这些东西,你可以任意组合你喜欢的输出格式内容。 4.有没有方式控制程序自动按日期记录日志信息,即每天的日志都在不同的日志文件中? 其实这种方式对应于一种特定的记录方式:RollingFileAppender。这种方式也是基于文件记录的,不过他提供更加灵活的日志记录方式。具体说来他可以按日志文件的大小或者日志记录的时间进行自动变换日志文件。 按每天不同的日期进行记录分类:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<appender name="RollingLogFileAppenderEveryMin" type="log4net.Appender.RollingFileAppender"> <!--日志文件名开头--> <file value="c:\logfile.txt" /> <!--是否追加到文件--> <appendToFile value="true" /> <!--变换的形式为日期--> <rollingStyle value="Date" /> <!--日期的格式,每分钟换一个文件记录--> <datePattern value="yyyyMMdd-HHmm" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> </layout> </appender> |
按照日志文件的大小进行变换,通过这种方式可以有效降低日志文件体积膨胀的问题:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> <!--日志文件名--> <file value="c:\log.txt"/> <!--是否在文件中追加--> <appendToFile value="true"/> <!--按照文件的大小进行变换日志文件--> <rollingStyle value="Size"/> <!--最大变换数量,如果超过这个数量则从第一个文件开始复写--> <maxSizeRollBackups value="10"/> <!--最大文件大小,支持KB,MB,GB--> <maximumFileSize value="100KB"/> <!--日志文件名是否为静态--> <staticLogFileName value="true"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/> </layout> </appender> |
最后从网上找了一段写日志的原则,感觉还是很好的: 【写日志的原则】 Ⅰ.在catch后,把异常写入日志. Ⅱ.在调用第三方控件的开始和结束处. Ⅲ.在连接数据库的开始结束处. Ⅳ.除非必要,不要在循环体中加入日志,否则一旦出问题可能导致日志暴增. Ⅴ.在自己认为很重要的逻辑处写入日志. 如果要将log方法写在类库里面,那么可以参考这篇文章http://hi.baidu.com/sjbh/blog/item/10cda8d689fb0c3807088b87.html from:http://www.cnblogs.com/qianlifeng/archive/2011/04/22/2024856.html
View Details今天遇到了这样的事情,“页面超过了最大请求长度问题” “/AppShop”应用程序中的服务器错误。 超过了最大请求长度。 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Web.HttpException: 超过了最大请求长度。 源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。 堆栈跟踪: [HttpException (0x80004005): 超过了最大请求长度。] System.Web.HttpRequest.GetEntireRawContent() +8766626 System.Web.HttpRequest.GetMultipartContent() +62 System.Web.HttpRequest.FillInFormCollection() +168 System.Web.HttpRequest.get_Form() +68 System.Web.HttpRequest.get_HasForm() +8722023 System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull) +97 System.Web.UI.Page.DeterminePostBackMode() +63 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +133 问题:在百万行数据表中真分页查询,页面上有一DropDownList用来选择页码,达到十万个下拉项,viewstate=true。 在页面回传时,产生超过了最大请求长度的 问题 分析:这可能是由于viewstate包含数据量过大,引起回传request包含数据量过大。 解决方案:可以在webconfig文件中修改最大请求长度。 <configuration> <system.web> <httpRuntime maxRequestLength="10000" ……> </system.web> </configuration> 结果:先设为1000,不通过,设为10000后,通过 总结:或进行二级分页可能更好 FORM:http://www.cnblogs.com/wenanry/archive/2009/04/16/1437094.html
View Details发送代码: var imgFile = Request.Files["imgFile"]; if (imgFile == null) return; var img = Image.FromStream(imgFile.InputStream); var ms = new MemoryStream(); img.Save(ms,ImageFormat.Jpeg); var data = new byte[ms.Length]; ms.Seek(0, SeekOrigin.Begin); ms.Read(data, 0, Convert.ToInt32(ms.Length)); ms.Dispose(); var fileName = imgFile.FileName; var fileType = imgFile.ContentType; var fileSize = data.Length.ToString(); var myRequest = WebRequest.Create(Common.ImgUrl + "/upload/UploadImg.aspx"); myRequest.Method = "POST"; myRequest.ContentType = fileType; myRequest.ContentLength = data.Length; myRequest.Headers.Add("FileType", Server.UrlEncode(fileType)); myRequest.Headers.Add("FileSize", fileSize); myRequest.Headers.Add("FileName", Server.UrlEncode(fileName)); myRequest.Headers.Add("dir", Server.UrlEncode(Request["dir"])); using (var newStream = myRequest.GetRequestStream()) { // Send the data. newStream.Write(data, 0, data.Length); newStream.Close(); } // Get response var myResponse = myRequest.GetResponse(); […]
View Details