在XP的iis下没错,到08server iis7下出错

wrost 2012-09-27 11:11:35




public partial class Business : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{


string StrSql;
if (!IsPostBack)
{


AreaList.Items.Clear();


//获取医院地区列表;
StrSql = "select AreaName from Area";
DataBase DB = new DataBase();
SqlDataReader DR = DB.RunProcGetReader(StrSql);

AreaList.Items.Add(new ListItem(""));
while (DR.Read())
{

AreaList.Items.Add(new ListItem(DR["AreaName"].ToString()));

}


//绑定医院数据表
StrSql = "select * from Hospital ";
ViewState["SortExpression"] = "Area";//第一次赋值
ViewState["SortDirection"] = "Asc";//第一次赋值

SelectHospital(StrSql, 0);

}

} 执行到这个括号就出错了,之前都没有出错



错误信息:
实例失败。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.InvalidOperationException: 实例失败。

源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

堆栈跟踪:


[InvalidOperationException: 实例失败。]




...全文
148 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
wrost 2012-09-28
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 的回复:]
[SqlException (0x80131904): 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)]

这是连接、数据库配置的错误,可能你的程序中不止一个地方……
[/Quote]

谢谢,应该是这个,aspx页面不小心配置了一个固定的。 太菜了。
孟子E章 2012-09-28
  • 打赏
  • 举报
回复
[SqlException (0x80131904): 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)]

这是连接、数据库配置的错误,可能你的程序中不止一个地方写了连接字符串或者连接个库
wrost 2012-09-28
  • 打赏
  • 举报
回复
wrost 2012-09-28
  • 打赏
  • 举报
回复
wrost 2012-09-28
  • 打赏
  • 举报
回复


我把profiler的图贴出来

但是SQL profiler之前跟踪到有执行,程序主体也执行完了,是在返回页面时出问题
孟子E章 2012-09-28
  • 打赏
  • 举报
回复
还是数据库连接的问题啊,你的系统防火墙1433端口没打开ia啊,数据库设置中使用启用了 tcp/ip,用户名、密码是否设置的真的正确
wrost 2012-09-28
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]
异常详细信息: System.InvalidOperationException: 实例失败。

源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

堆栈跟踪: 这里就是CallStack, 就这点东西吗?


[InvalidOperationException: 实例失败。]
[/Quote]

今天的错误和昨天又不一样了,我打开sql profiler,SQL语句都执行好几条,现在怎么说没有找到



[SqlException (0x80131904): 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)]
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +4849015
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +194
System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, SqlConnection owningObject) +4862333
System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject) +90
System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart) +342
System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) +221
System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) +189
System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) +185
System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) +31
System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) +433
System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) +66
System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +499
System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +65
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +117
System.Data.SqlClient.SqlConnection.Open() +122
System.Data.Common.DbDataAdapter.QuietOpen(IDbConnection connection, ConnectionState& originalState) +31
System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +112
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +287
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) +92
System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +1297
System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +19
System.Web.UI.WebControls.DataBoundControl.PerformSelect() +142
System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +73
System.Web.UI.WebControls.GridView.DataBind() +4
System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +82
System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +72
System.Web.UI.Control.EnsureChildControls() +87
System.Web.UI.Control.PreRenderRecursiveInternal() +44
System.Web.UI.Control.PreRenderRecursiveInternal() +171
System.Web.UI.Control.PreRenderRecursiveInternal() +171
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +842


宝_爸 2012-09-28
  • 打赏
  • 举报
回复
异常详细信息: System.InvalidOperationException: 实例失败。

源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

堆栈跟踪: 这里就是CallStack, 就这点东西吗?


[InvalidOperationException: 实例失败。]
孟子E章 2012-09-28
  • 打赏
  • 举报
回复
“文件不存在。”(System.Web.HttpException)
引发了一个 System.Web.HttpException:“文件不存在。”

应该是哪个文件路径没写好
wrost 2012-09-28
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
请帖完整Call Stack.
[/Quote]

Call Stack 没用过这种调试,我只用过逐步和逐过程,请问该怎么用
wrost 2012-09-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
应该是你没有配置好,尤其是数据库的配置

DataBase DB = new DataBase();

看着里面的代码
[/Quote]

我用F11逐步跟踪,sql profiler也打开了,sql语句也在执行







using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Collections;


namespace MLapp
{
/// <summary>
/// DataBase 的摘要说明。
/// </summary>
public class DataBase
{

private string ConnStr = null;

public DataBase()
{
ConnStr = ConfigurationSettings.AppSettings["dsn"];
//ConnStr = ConfigurationManager.AppSettings["dsn"];
}
public DataBase(string Str)
{
try
{
this.ConnStr = Str;

}
catch(Exception ex)
{
throw ex;
}
}

/// <summary>
/// 返回connection对象
/// </summary>
/// <returns></returns>
public SqlConnection ReturnConn()
{
SqlConnection Conn = new SqlConnection(ConnStr);
Conn.Open();
return Conn;
}
public void Dispose(SqlConnection Conn)
{
if(Conn!=null)
{
Conn.Close();
Conn.Dispose();
}
GC.Collect(); ///控制系统垃圾回收器(一种自动回收未使用内存的服务)。
}
/// <summary>
/// 运行SQL语句
/// </summary>
/// <param name="SQL"></param>
public void RunProc(string SQL)
{
SqlConnection Conn;
Conn = new SqlConnection(ConnStr);
Conn.Open();
SqlCommand Cmd ;
Cmd = CreateCmd(SQL, Conn);
try
{
Cmd.ExecuteNonQuery();
}
catch
{
throw new Exception(SQL);
}
Dispose(Conn);
return;
}

/// <summary>
/// 运行SQL语句返回DataReader
/// </summary>
/// <param name="SQL"></param>
/// <returns>SqlDataReader对象.</returns>
public SqlDataReader RunProcGetReader(string SQL)
{
SqlConnection Conn;
Conn = new SqlConnection(ConnStr);
Conn.Open();
SqlCommand Cmd ;
Cmd = CreateCmd(SQL, Conn); /// Cmd = nwe SqlCommand(SQL, Conn)
SqlDataReader Dr;
try
{
Dr = Cmd.ExecuteReader(CommandBehavior.Default); ///备忘:此查询可能返回多个结果集。执行查询可能会影响数据库状态。Default 不设置 CommandBehavior 标志,因此调用 ExecuteReader(CommandBehavior.Default) 在功能上等效于调用 ExecuteReader()。
}
catch
{
throw new Exception(SQL);
}
//Dispose(Conn);
//Dispose(Conn); //把注释销掉,看看有什么变化。 会出错,导致阅读器关闭
return Dr;
}


/// <summary>
/// 生成Command对象
/// </summary>
/// <param name="SQL"></param>
/// <param name="Conn"></param>
/// <returns></returns>
public SqlCommand CreateCmd(string SQL, SqlConnection Conn)
{
SqlCommand Cmd ;
Cmd = new SqlCommand(SQL, Conn);
return Cmd;
}

/// <summary>
/// 生成Command对象
/// </summary>
/// <param name="SQL"></param>
/// <returns></returns>
public SqlCommand CreateCmd(string SQL)
{
SqlConnection Conn;
Conn = new SqlConnection(ConnStr);
Conn.Open();
SqlCommand Cmd ;
Cmd = new SqlCommand(SQL, Conn);
return Cmd;
}

/// <summary>
/// 返回adapter对象
/// </summary>
/// <param name="SQL"></param>
/// <param name="Conn"></param>
/// <returns></returns>
public SqlDataAdapter CreateDa(string SQL)
{
SqlConnection Conn;
Conn = new SqlConnection(ConnStr);
Conn.Open();
SqlDataAdapter Da;
Da = new SqlDataAdapter(SQL, Conn);
return Da;
}

/// <summary>
/// 运行SQL语句,返回DataSet对象
/// </summary>
/// <param name="procName">SQL语句</param>
/// <param name="prams">DataSet对象</param>
public DataSet RunProc(string SQL ,DataSet Ds)
{
SqlConnection Conn;
Conn = new SqlConnection(ConnStr);
Conn.Open();
SqlDataAdapter Da;
//Da = CreateDa(SQL, Conn);
Da = new SqlDataAdapter(SQL,Conn);
try
{
Da.Fill(Ds);
}
catch(Exception Err)
{
throw Err;
}
Dispose(Conn); ///数据连接关闭,数据仍然在数据集里边。
return Ds;
}

/// <summary>
/// 运行SQL语句,返回DataSet对象
/// </summary>
/// <param name="procName">SQL语句</param>
/// <param name="prams">DataSet对象</param>
/// <param name="dataReader">表名</param>
public DataSet RunProc(string SQL ,DataSet Ds,string tablename)
{
SqlConnection Conn;
Conn = new SqlConnection(ConnStr);
Conn.Open();
SqlDataAdapter Da;
Da = CreateDa(SQL);
try
{
Da.Fill(Ds,tablename);
}
catch(Exception Ex)
{
throw Ex;
}
Dispose(Conn);
return Ds;
}

/// <summary>
/// 运行SQL语句,返回DataSet对象
/// </summary>
/// <param name="procName">SQL语句</param>
/// <param name="prams">DataSet对象</param>
/// <param name="dataReader">表名</param>
public DataSet RunProc(string SQL , DataSet Ds ,int StartIndex ,int PageSize, string tablename )
{
SqlConnection Conn;
Conn = new SqlConnection(ConnStr);
Conn.Open();
SqlDataAdapter Da ;
Da = CreateDa(SQL);
try
{
Da.Fill(Ds, StartIndex, PageSize, tablename);
}
catch(Exception Ex)
{
throw Ex;
}
Dispose(Conn);
return Ds;
}

/// <summary>
/// 检验是否存在数据
/// </summary>
/// <returns></returns>
public bool ExistDate(string SQL)
{
SqlConnection Conn;
Conn = new SqlConnection(ConnStr);
Conn.Open();
SqlDataReader Dr ;
Dr = CreateCmd(SQL,Conn).ExecuteReader();
if (Dr.Read())
{
Dispose(Conn);
return true;
}
else
{
Dispose(Conn);
return false;
}
}

/// <summary>
/// 返回SQL语句执行结果的第一行第一列
/// </summary>
/// <returns>字符串</returns>
public string ReturnValue(string SQL)
{
SqlConnection Conn;
Conn = new SqlConnection(ConnStr);
Conn.Open();
string result;
SqlDataReader Dr ;
try
{
Dr = CreateCmd(SQL,Conn).ExecuteReader();
if (Dr.Read())
{
result = Dr[0].ToString();
Dr.Close();
}
else
{
result = "";
Dr.Close();
}
}
catch
{
throw new Exception(SQL);
}
Dispose(Conn);
return result;
}

/// <summary>
/// 返回SQL语句第一列,第ColumnI列,
/// </summary>
/// <returns>字符串</returns>
public string ReturnValue(string SQL, int ColumnI)
{
SqlConnection Conn;
Conn = new SqlConnection(ConnStr);
Conn.Open();
string result;
SqlDataReader Dr ;
try
{
Dr = CreateCmd(SQL,Conn).ExecuteReader();
}
catch
{
throw new Exception(SQL);
}
if (Dr.Read())
{
result = Dr[ColumnI].ToString();
}
else
{
result = "";
}
Dr.Close();
Dispose(Conn);
return result;
}

/// <summary>
/// 生成一个存储过程使用的sqlcommand.
/// </summary>
/// <param name="procName">存储过程名.</param>
/// <param name="prams">存储过程入参数组.</param>
/// <returns>sqlcommand对象.</returns>
public SqlCommand CreateCmd(string procName, SqlParameter[] prams)
{
SqlConnection Conn;
Conn = new SqlConnection(ConnStr);
Conn.Open();
SqlCommand Cmd = new SqlCommand(procName, Conn);
Cmd.CommandType = CommandType.StoredProcedure;
if (prams != null)
{
foreach (SqlParameter parameter in prams)
{
if(parameter != null)
{
Cmd.Parameters.Add(parameter);
}
}
}
return Cmd;
}

/// <summary>
/// 为存储过程生成一个SqlCommand对象
/// </summary>
/// <param name="procName">存储过程名</param>
/// <param name="prams">存储过程参数</param>
/// <returns>SqlCommand对象</returns>
private SqlCommand CreateCmd(string procName, SqlParameter[] prams,SqlDataReader Dr)
{
SqlConnection Conn;
Conn = new SqlConnection(ConnStr);
Conn.Open();
SqlCommand Cmd = new SqlCommand(procName, Conn);
Cmd.CommandType = CommandType.StoredProcedure;
if (prams != null)
{
foreach (SqlParameter parameter in prams)
Cmd.Parameters.Add(parameter);
}
Cmd.Parameters.Add(
new SqlParameter("ReturnValue", SqlDbType.Int, 4,
ParameterDirection.ReturnValue, false, 0, 0,
string.Empty, DataRowVersion.Default, null));

return Cmd;
}

/// <summary>
/// 运行存储过程,返回.
/// </summary>
/// <param name="procName">存储过程名</param>
/// <param name="prams">存储过程参数</param>
/// <param name="dataReader">SqlDataReader对象</param>
public void RunProc(string procName, SqlParameter[] prams, SqlDataReader Dr)
{

SqlCommand Cmd = CreateCmd(procName, prams, Dr);
Dr = Cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
return;
}

/// <summary>
/// 运行存储过程,返回.
/// </summary>
/// <param name="procName">存储过程名</param>
/// <param name="prams">存储过程参数</param>
public string RunProc(string procName, SqlParameter[] prams)
{
SqlDataReader Dr;
SqlCommand Cmd = CreateCmd(procName, prams);
Dr = Cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
if(Dr.Read())
{
return Dr.GetValue(0).ToString();
}
else
{
return "";
}
}

/// <summary>
/// 运行存储过程,返回dataset.
/// </summary>
/// <param name="procName">存储过程名.</param>
/// <param name="prams">存储过程入参数组.</param>
/// <returns>dataset对象.</returns>
public DataSet RunProc(string procName,SqlParameter[] prams,DataSet Ds)
{
SqlCommand Cmd = CreateCmd(procName,prams);
SqlDataAdapter Da = new SqlDataAdapter(Cmd);
try
{
Da.Fill(Ds);
}
catch(Exception Ex)
{
throw Ex;
}
return Ds;
}

}
}

呆子罗 2012-09-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

应该是你没有配置好,尤其是数据库的配置

DataBase DB = new DataBase();

看着里面的代码
[/Quote]
孟老师,正解!
附加数据库没有?
连接字符串怎么写的?
孟子E章 2012-09-28
  • 打赏
  • 举报
回复
应该是你没有配置好,尤其是数据库的配置

DataBase DB = new DataBase();

看着里面的代码
宝_爸 2012-09-28
  • 打赏
  • 举报
回复
请帖完整Call Stack.
wrost 2012-09-27
  • 打赏
  • 举报
回复
我觉得应该是什么地方配置有问题,不然在执行程序主体都没有错,反而执行完,返回的时候出错了
wrost 2012-09-27
  • 打赏
  • 举报
回复
里边有显示异常:

异常:已引发:“文件不存在。”(System.Web.HttpException)
引发了一个 System.Web.HttpException:“文件不存在。”



//绑定医院数据表
StrSql = "select * from Hospital ";
ViewState["SortExpression"] = "Area";//第一次赋值
ViewState["SortDirection"] = "Asc";//第一次赋值

SelectHospital(StrSql, 0);

}

} 执行到这个括号就出错了,之前都没有出错

wrost 2012-09-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
删除已经编译好的文件,重新编译下试试。

另外看括号是不是中文的
[/Quote]

这个是以前用过一段时间程序,当时就在XP的iis下配置的,现在转到08server上边来。

括号应该不是中文
licai1210 2012-09-27
  • 打赏
  • 举报
回复
删除已经编译好的文件,重新编译下试试。

另外看括号是不是中文的
wrost 2012-09-27
  • 打赏
  • 举报
回复
而且就是网页出现错误信息, vs2010并没有出现异常提示,也没有中断

62,173

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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