当前位置:  编程技术>.net/c#/asp.net
本页文章导读:
    ▪WebService 测试窗体只能用于来自本地计算机的请求      问题:  WebService部署成站点之后,如果在本地测试webservice可以运行,在远程却显示“测试窗体只能用于来自本地计算机的请求”或者"The test form is only available for requests from the local mach.........
    ▪ASP.NET将文件写到另一服务器      有时我们需要将来自于客户端的文件上传到WEB服务器端,并在服务端将文件存储到第三方文件服务器中存储。 实现如下: 1、在文件服务器B上建立一共享文件夹,同时在该服务器上创建一用.........
    ▪文件与流相关code      FileStream方式写入文件FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);fs.Write(fileData, 0, fileData.Length); //写入流 fs.Flush(); //清空缓冲区 fs.Close(); //关闭流fs.Dispose(); BinaryWriter方式写.........

[1]WebService 测试窗体只能用于来自本地计算机的请求
    来源:    发布时间: 2013-11-15

问题:
  WebService部署成站点之后,如果在本地测试webservice可以运行,在远程却显示“测试窗体只能用于来自本地计算机的请求”或者"The test form is only available for requests from the local machine. ",

原因:
    大家都知道,Web服务做好后,发布在网上,别人要调用你提供的接口时,是无法打开测试窗体的,这让很多的朋友都蛮郁闷,为什么别人提供的服务接口就能够打开测试窗体,而我的就不行呢?是不是我的代码写的有问题呢?那是因为没有开启远程访问的原因。

解决:
在web.config的<system.web></system.web>中间加入如下配置节内容

<webServices>
<protocols>
<add name="HttpSoap"/>
<add name="HttpPost"/>
<add name="HttpGet"/>
<add name="Documentation"/>
</protocols>
</webServices>

分析:
以下说明来自MSDN:
protocols 元素指定 ASP.NET Web 服务可用来接收从客户端发送来的请求数据和返回响应数据的协议。协议可用来将请求数据与方法及其参数关联起来,将响应数据与方法及其返回值关联起来。默认情况下,仅启用 HttpSoap 和 Documentation。若要使用 HttpPost 和 HttpGet,需要按照上面的示例所显示的那样启用它们。
protocols 的子元素有(add,clear,remove)
add--添加 ASP.NET Web 服务可用来接收从客户端发送来的请求数据和返回响应数据的指定协议。默认情况下,仅启用 HttpSoap 和 Documentation。
clear--从配置文件的范围内移除所有的协议。
remove--从配置文件的范围内移除用来处理请求和响应数据的指定协议。

本文链接


    
[2]ASP.NET将文件写到另一服务器
    来源:    发布时间: 2013-11-15

有时我们需要将来自于客户端的文件上传到WEB服务器端,并在服务端将文件存储到第三方文件服务器中存储。

实现如下:

1、在文件服务器B上建立一共享文件夹,同时在该服务器上创建一用户,如DocShareUser,给此用户分配共享文件夹的读写权限

2、在WEB服务器A上也同时传建一同名用户DocShareUser (注意,用户名和密码必须一致)

3、在网站下添加一虚拟目录,虚拟目录的物理路径执行服务器A的共享目录,路径符合UNC规则,如\\ServerB\DocShare,传递身份验证用户为所创建的DocShareUser (注意其为本机所建用户)

4、给C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files临时目录分配所建用户DocShareUser的读写控制权限 (路径视安装Framework版本而定)

5、信任关系权限,只有在建立信任的基础上,方可向B服务器上传文件,该问题可通过两种方式解决,

     方式1:在Web.Config中增加运行模拟帐号<identity impersonate="true" userName="DocShareUser" password="password" />

    方式2:在Global.asax中加载,网站一运行就自动建立信任关系,System.Diagnostics.Process.Start("net.exe", "use \\\\B服务器的IP\\共享文件夹 \"B服务器上的密码\" /user:\"B服务器上的用户名\""),B服务器上的用户是指能写入那个共享文件夹的用户

6、代码中通过Server.MapPath("虚拟目录")方式获取上传地址,写入文件流即可

7、注意上传文件IIS有默认4M限制,可通过WEB.config修改,如下

<httpRuntime maxRequestLength="10240" appRequestQueueLimit="90" executionTimeout="90"/>

以上在WIN2008R2+IIS7下验证通过。

本文链接


    
[3]文件与流相关code
    来源:    发布时间: 2013-11-15

FileStream方式写入文件

FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);
fs.Write(fileData, 0, fileData.Length); //写入流
fs.Flush(); //清空缓冲区
fs.Close(); //关闭流
fs.Dispose();

 

BinaryWriter方式写文件

FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);
using (BinaryWriter bw = new BinaryWriter(fs))
{
bw.Write(fileData); //写入流
bw.Flush();//清空缓冲区
bw.Close(); //关闭流
}
fs.Close();
fs.Dispose();

 

FileStream fs1 = new FileStream(@"x1.doc", FileMode.Open);
FileStream fs2 = new FileStream(@"x2.doc", FileMode.Create);
byte[] data = new byte[1024];
//创建两个缓冲流,与两个文件流相关联
BufferedStream bs1 = new BufferedStream(fs1);
BufferedStream bs2 = new BufferedStream(fs2);
while (fs1.Read(data, 0, data.Length) > 0)
{
fs2.Write(data, 0, data.Length);
fs2.Flush();
}
fs1.Close();
fs2.Close();

 

FileStream fs = new FileStream(op.FileName, FileMode.Open);
//把文件读取到字节数组
byte[] data = new byte[fs.Length];
fs.Read(data, 0, data.Length);
fs.Close();

 

Stream s = fileUpload.PostedFile.InputStream;
//文件临时储存Byte数组
Byte[] fileData = new Byte[fileUpload.PostedFile.ContentLength];
s.Read(fileData, 0, fileUpload.PostedFile.ContentLength);
s.Close();

 

FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);
StreamWriter sw = new StreamWriter(fs);
sw.Write(this.textBox1.Text);
sw.Flush();//清空缓冲区
sw.Close();//关闭流
fs.Close();

 

//获得字节数组
byte[] data = new System.Text.UTF8Encoding().GetBytes(this.textBox1.Text);

本文链接


    
最新技术文章:
▪C#通过IComparable实现ListT.sort()排序
▪C#实现对Json字符串处理实例
▪Winform实现抓取web页面内容的方法
▪Winform实现将网页生成图片的方法
▪C#控制台程序中处理2个关闭事件的代码实例
▪WinForm实现同时让两个窗体有激活效果的特效...
▪WinForm实现拦截窗体上各个部位的点击特效实...
▪用C#的params关键字实现方法形参个数可变示例
▪C#判断某程序是否运行的方法
▪C#验证码识别基础方法实例分析
▪C#通过WIN32 API实现嵌入程序窗体
▪C#实现获取鼠标句柄的方法
▪C#事件处理和委托event delegate实例简述
▪C#获取程序文件相关信息的方法
▪C#中的除法运算符与VB.NET中的除法运算符
▪ASP.NET MVC 5使用X.PagedList.Mvc进行分页教程(PagedLi...
▪Base64编码解码原理及C#编程实例
▪C#实现的优酷真实视频地址解析功能(2014新算...
▪C#和SQL实现的字符串相似度计算代码分享
▪C#使用Word中的内置对话框实例
▪C#反射之基础应用实例总结
▪C#生成单页静态页简单实例
▪C#实现SMTP邮件发送程序实例
▪C#实现随鼠标移动窗体实例
▪C#使用GDI+创建缩略图实例
▪C#实现通过模板自动创建Word文档的方法
▪C#中Response.Write常见问题汇总
▪C#中多态、重载、重写区别分析
▪WinFrom中label背景透明的实现方法
▪C#中out保留字用法实例分析
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3