System.Web.UI.WebControls 和 System.Web.UI.Control

生活 2009-12-04 01:32:48
最近做了个项目 在网上找了功能 看到里面有个System.Web.UI.Control test 的参数 调用方法的时候 赋值是this
可是我把项目发布到网上 会出现问题。但不报错 我感觉是 这个this的事情 感觉这个this是指定的当前的也。不能用到WEB上。
之后我又在网上看到有System.Web.UI.WebControls 类 不知道怎么用 谁能告诉我啊?
他们有什么区别?怎么用啊。
...全文
357 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
生活 2009-12-05
  • 打赏
  • 举报
回复
基本上认定不是上面我问的问题了。我在重新把我的项目完成的描述下 在论坛版块上。谢谢你的回答。
宝_爸 2009-12-04
  • 打赏
  • 举报
回复
SendFaxMessage中是不是有保存文件的行为?
如果有的话需要设置保存文件的路径的权限
给下面的账户 读写权限。
通常,在 IIS 5 上为 {MACHINE}\ASPNET,在 IIS 6 上为Network Service
生活 2009-12-04
  • 打赏
  • 举报
回复
谢谢你了 终于报错了 你帮我看看 什么错呗
拒绝访问。 (异常来自 HRESULT:0x80070005 (E_ACCESSDENIED))
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.UnauthorizedAccessException: 拒绝访问。 (异常来自 HRESULT:0x80070005 (E_ACCESSDENIED))
ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}\ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。
要将 ASP.NET 访问权限授予某个文件,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。

堆栈跟踪:
[UnauthorizedAccessException: 拒绝访问。 (异常来自 HRESULT:0x80070005 (E_ACCESSDENIED))]
MyFaxWin.FaxPageTwo.SendFaxMessage(String FileInfoMessage, String FileTittle, String ReceiverName, String FaxNumber) in E:\MyFax\MyFax2009cu\MyFaxWin\FaxPageTwo.aspx.cs:196
MyFaxWin.FaxPageTwo.ExpertControl(Control source, DocumentType type, String File, String FileTittle, String ReceiverName, String FaxNumber) in E:\MyFax\MyFax2009cu\MyFaxWin\FaxPageTwo.aspx.cs:139
MyFaxWin.FaxPageTwo.SendBut_Click(Object sender, EventArgs e) in E:\MyFax\MyFax2009cu\MyFaxWin\FaxPageTwo.aspx.cs:101
System.EventHandler.Invoke(Object sender, EventArgs e) +0
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102
生活 2009-12-04
  • 打赏
  • 举报
回复
恩 谢谢 我试试
宝_爸 2009-12-04
  • 打赏
  • 举报
回复
你得到的是什么结果?是跳到错误页面吗?
如果是跳到错误页面,但是看不到错误

试一试把web.config中的
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>

改成

<customErrors mode="Off">
</customErrors>
生活 2009-12-04
  • 打赏
  • 举报
回复
老师 没有错误 不报错 没有异常 由于是发布后在网上看 不能调式。
宝_爸 2009-12-04
  • 打赏
  • 举报
回复
另外你在SendFaxMessage中catch住异常,但是没有做做任何处理,如果出错,你就不知道了。

把异常再抛出来看看

catch (Exception Ex)
{
Ex.ToString();
throw Ex;
}
宝_爸 2009-12-04
  • 打赏
  • 举报
回复
把你异常信息,尤其是Stack Trace贴一下
生活 2009-12-04
  • 打赏
  • 举报
回复
刚刚 仔细看了一遍 好像不是这那个问题 ? 能帮我看看是哪的问题吗?
生活 2009-12-04
  • 打赏
  • 举报
回复

protected void SendBut_Click(object sender, EventArgs e)
{
//判断是否填入 收件人名 传真号 标题
if (this.RecipientName.Text != "" && this.FileNumber.Text != "" && this.DocumentName.Text != "")
{
ExpertControl(this, DocumentType.Word, Server.MapPath("result.doc"), this.DocumentName.Text, this.RecipientName.Text, this.FileNumber.Text);
}
else
{
Response.Write("<script>alert('请填写完整的收件人姓名,传真号,传真标题')</script>");
}
}

public void ExpertControl(System.Web.UI.Control source, DocumentType type, string File, string FileTittle, string ReceiverName, string FaxNumber)
{
//设置Http的头信息,编码格式
if (type == DocumentType.Excel)
{
//Excel
Response.AppendHeader("Content-Disposition", "attachment;filename=result.xls");
Response.ContentType = "application/ms-excel";
}
else if (type == DocumentType.Word)
{
//Word
Response.AppendHeader("Content-Disposition", "attachment;filename=result.doc");
Response.ContentType = "application/ms-word";
}
Response.Charset = "utf-8";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
//关闭控件的视图状态
source.Page.EnableViewState = false;
//初始化HtmlWriter
System.IO.StringWriter writer = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWriter = new System.Web.UI.HtmlTextWriter(writer);
source.RenderControl(htmlWriter);


////////////houjia///////////////

StreamWriter streamwriter = new StreamWriter(File); //创建数据流
streamwriter.Write(writer.ToString()); //输出
streamwriter.Close(); //关闭流
SendFaxMessage(File, FileTittle, ReceiverName, FaxNumber);

//输出
// Response.Write(writer.ToString());
Response.End();
}
//文档类型枚举
public enum DocumentType
{
Word,
Excel
}
// Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/**/
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.SendBut.Click += new System.EventHandler(this.SendBut_Click);
this.Load += new System.EventHandler(this.Page_Load);
}

/// <summary>
/// 传真发送
/// </summary>
/// <param name="FileMessage">文件内容</param>
/// <param name="FileTittle">文档名</param>
/// <param name="ReceiverName">收件人姓名或者收件人公司名</param>
/// <param name="FaxNumber">收件人传真号码</param>
public void SendFaxMessage(string FileInfoMessage, string FileTittle, string ReceiverName, string FaxNumber)
{
if (FaxNumber != "")
{
try
{
FAXCOMLib.FaxServer faxServer = new FAXCOMLib.FaxServerClass(); //初始化传真组件
faxServer.Connect(Environment.MachineName); //获取当前服务器名
FAXCOMLib.FaxDoc faxDoc = (FAXCOMLib.FaxDoc)faxServer.CreateDocument(FileInfoMessage);
faxDoc.RecipientName = ReceiverName; //收件人姓名或者公司名
faxDoc.FaxNumber = FaxNumber; //收件人传真号码
faxDoc.DisplayName = FileTittle; //文档名
int Response = faxDoc.Send(); //程序到fax server的流水號
faxServer.Disconnect();
}
catch (Exception Ex)
{
Ex.ToString();
}

}
}
生活 2009-12-04
  • 打赏
  • 举报
回复
我代码贴上去你看看吧 在本地运行都没错 可是发布以后就会出错
宝_爸 2009-12-04
  • 打赏
  • 举报
回复
你的this 是在哪个类里面使用的?
宝_爸 2009-12-04
  • 打赏
  • 举报
回复
..::.是从msdn copy的结果,其实就一个.
生活 2009-12-04
  • 打赏
  • 举报
回复
System.Web.UI.WebControls..::.WebControl 是什么的原理呢 我知道System.Web.UI.WebControls能.出里面控件来,但是我现在想得到整个页面。可能不能用这个实现。但我用System.Web.UI.Controls 时候 是发布到网上去 System.Web.UI.Controls 的this 能在网上用吗?
宝_爸 2009-12-04
  • 打赏
  • 举报
回复

而System.Web.UI.WebControls..::.WebControl得继承体系是这样的。
Page不是他的子类,因此无法System.Web.UI.WebControls..::.WebControl的变量赋值
重要的是你要搞清楚this是什么类型的实例

System..::.Object
System.Web.UI..::.Control
System.Web.UI.WebControls..::.WebControl
System.Web.UI..::.ScriptControl
System.Web.UI.WebControls..::.BaseDataBoundControl
System.Web.UI.WebControls..::.BaseDataList
System.Web.UI.WebControls..::.Button
System.Web.UI.WebControls..::.Calendar
System.Web.UI.WebControls..::.CheckBox
System.Web.UI.WebControls..::.CompositeControl
System.Web.UI.WebControls..::.DataListItem
System.Web.UI.WebControls..::.FileUpload
System.Web.UI.WebControls..::.HyperLink
System.Web.UI.WebControls..::.Image
System.Web.UI.WebControls..::.Label
System.Web.UI.WebControls..::.LinkButton
System.Web.UI.WebControls..::.LoginName
System.Web.UI.WebControls..::.Panel
System.Web.UI.WebControls..::.SiteMapNodeItem
System.Web.UI.WebControls..::.Table
System.Web.UI.WebControls..::.TableCell
System.Web.UI.WebControls..::.TableRow
System.Web.UI.WebControls..::.TextBox
System.Web.UI.WebControls..::.ValidationSummary
宝_爸 2009-12-04
  • 打赏
  • 举报
回复

this指的是当前实例,如果你是在aspx的behind class中,那么this应该是当前的Page的实例
下面是Page的继承树
System.Object
System.Web.UI.Control
System.Web.UI.TemplateControl
System.Web.UI.Page

由此可见它是间接从System.Web.UI.Control继承的,因此可以赋给System.Web.UI.Control的变量
生活 2009-12-04
  • 打赏
  • 举报
回复
是这个System.Web.UI.WebControls.WebControl
生活 2009-12-04
  • 打赏
  • 举报
回复
那System.Web.UI.WebControls 呢 他里面也有System.Web.UI.WebControls.Control
红街咖啡 2009-12-04
  • 打赏
  • 举报
回复
Control 定义由所有 ASP.NET 服务器控件共享的属性、方法和事件。
msdn
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧