标签归档:asp.net

操作必须使用一个可更新的查询。

作必须使用一个可更新的查询。 Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Exception: 操作必须使用一个可更新的查询。

Source Error:

Line 75:         catch (Exception e)
Line 76:         {
Line 77:             throw new Exception(e.Message);
Line 78:         }
Line 79:         finally

Source File: f:\asp.netweb\mgsfood\www\cn\App_Code\DBFun.cs    Line: 77

Stack Trace:

该问题基本也由于权限问题引起,基本上.NET用户缺少写入权限造成,对该网站目录的.NET所需用户都添加一个写入权限,问题马上解决。

asp.net 网站目录所需的权限 Server Application Unavailable

打开ASP.NET 网页出现:
Server Application Unavailable
The web application you are attempting to access on this web server is currently unavailable. Please hit the “Refresh” button in your web browser to retry your request.
Administrator Note: An error message detailing the cause of this specific request failure can be found in the application event log of the web server. Please review this log entry to discover what caused this error to occur.

系统日志出现

事件类型: 错误
事件来源:  2.0.50727.0
事件种类: 无
事件 ID: 1088
日期:  2010-4-6
事件:  21:44:43
用户:  N/A
计算机: XXXXXXX
描述:
Failed to execute request because the App-Domain could not be created. Error: 0x80070005 拒绝访问。 

事件类型: 错误
事件来源: ASP.NET 2.0.50727.0
事件种类: 无
事件 ID: 1334
日期:  2010-4-6
事件:  21:44:43
用户:  N/A
计算机: 4B9JBIX9M9UC98G
描述:
Failed to initialize the AppDomain:/LM/W3SVC/318331351/Root/en

Exception: System.IO.FileLoadException

Message: Could not load file or assembly ‘System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a’ or one of its dependencies. 拒绝访问。

StackTrace:    at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
   at System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
   at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
   at System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
   at System.Activator.CreateInstance(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo, StackCrawlMark& stackMark)
   at System.Activator.CreateInstance(String assemblyName, String typeName)
   at System.AppDomain.CreateInstance(String assemblyName, String typeName)
   at System.AppDomain.CreateInstance(String assemblyName, String typeName)
   at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)
   at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironmentAndReportErrors(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)

解决办法,该问题主要是由于网站文件夹权限问题引起,该网站文件夹下添加下面几个用户可以解决。

ASP.NET
IWAM_XXXXXXXX  该用户为默认的IIS站点用户。可以换成其他的。
Local_Service
Network_Service
System

由于无法创建应用程序域,因此未能执行请求。错误: 0x80004005 未指定的错误 asp.net

遇到了这个问题,后来终于找到了个解决方法。以下内容为转,分析的很有道理。

引起这个的原因大概是现安装了.Net Framework后装的IIS导致.Net没有在IIS里注册。
在网上找了很久都是说从.net命令行工具里运行aspnet_regIIS /i就可以了(或者在类似下面的目录:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -i),但是自己试了很多次都不行,后来发现还是要先卸载再安装,重新创建为应用程序才行,具体如下:
从.net命令行工具里运行 aspnet_regIIS /u 卸载,再aspnet_regIIS /i安装
然后重启IIS ,删除“默认应用程序”,然后将站点重新创建为应用程序。
另外,还有可能是ASPNET账户没有IIS所指定服务器目录的权限。在资源管理器中找到“工具-文件夹选项-查看-使用简单文件夹共享(推荐)”,把前面的勾去掉,然后在服务器指定目录上点右键,属性-安全-添加-高级-立即查找,把ASPNET这个账户添加进去,给它指定完全访问的权限。这样做了以后就会发现没有了那个错误,不过如果访问数据库可能有会提示ASPNET这个账户没有权限访问数据库。这个提示就清楚多了,把该账户在数据库中加入相应的权限就可以了。
 

解决方法一 重新注册.Net 2.0:
C:WINDOWSMicrosoft.NetFrameworkv2.0.50727as.Net_regiis.exe –i
解决方法二 新建应用程序池:
新建应用程序池的步骤
1. 单击“开始”,指向“程序”,然后单击“控制面板”。
2. 双击“管理工具”,然后双击“Inte.Net 信息服务 ()”。
3. 右键单击“应用程序池”,指向“新建”,然后单击“应用程序池”。
4. 在“应用程序池 ID”文本框中键入 AppPool1。
5. 单击“确定”。
将应用程序分配到应用程序池
1. 单击“开始”,指向“程序”,然后单击“控制面板”。
2. 双击“管理工具”,然后双击“Inte.Net 信息服务 (IIS)”。
3. 双击“Web 站点”。
4. 双击“默认 Web 站点”。
5. 右键单击“DebugApp1”,然后单击“属性”。
6. 在“主目录”标签中的“应用程序池”列表框中选择“AppPool1”,然后单击“确定”。
解决方法三,修改网站目录所在文件夹的访问权限:
找到当前网站目录->右键->属性->安全->添加->高级->立即查找->选择 Users 用户 ->确定->确定
解决办法:
1、新建一个应用程序池,点属性,标识,选择应用程序池的安全性帐户,本地系统,OK!
2、WEB文件夹属性中的权限添加NetWork Service帐号权限。
 

ASP.net Server Application Unavailable错误

Server Application Unavailable
The web application you are attempting to access on this web server is currently unavailable.  Please hit the "Refresh" button in your web browser to retry your request. Administrator Note: An error message detailing the cause of this specific request failure can be found in the application event log of the web server. Please review this log entry to discover what caused this error to occur.
解决方法如下:
1、找到安装Framework的文件夹的CONFIG文件夹,一般就是下面的路径:
C:WINDOWSMicrosoft.NETFrameworkv2.0.50727CONFIG
2、在这个路径中找到machine.config这个文件打开,最好用UltraEdit-32或文本编辑器打开
3、查找<processModel autoConfig="true" />这一项
4、找到后修改成:
<processModel userName="machine" password="AutoGenerate" autoConfig="true" />
5、如果还不行则说明权限不够,可改成:
<processModel userName="SYSTEM" password="AutoGenerate" autoConfig="true" />6、创建ASPNET用户,设置好口令,并将ASPNET用户添加到Administrators组中;
7、启动cmd.exe,然后执行以下命令:
runas /profile /user:ASPNET cmd.exe
aspnet_regiis -i 执行以上命令时需要输入你创建用户的口令.
8、将ASPNET用户从Administrators组中删除;将其用户设为Guests用户组中。为了安全起见,最好将ASPNET用户从所有的用户组中删除,不赋予其任何权限。
9、重启IIS即可 。或者重启系统。

关于ASP.NET,站点中明明有文件,但出现找不到文件、404错误的解决办法

     主要是可能就是就是 .NET Framework 2.0没有安装好,或者被禁用。

查看 ->WEB服务扩展中->ASP.NETV2.0是否被禁止,若为禁止状态则启动;

还有有种可能就是 web服务器扩展中没有看到 2.0,这个时候isapi启用 也可以,但是一般这种情况是 2.0没有安装好呢,修复一下一般就可以了

让Apache支持ASP.NET

Apache是目前广泛使用的一种网络服务器程序,不仅在UNIX/LINUX平台上被大量使用,而且在Windows平台上也有许多站点放弃了IIS而转向Apache。
.NET是微软推出的功能强大的开发技术,其目标就是与Java抗衡。ASP.NET非常适合于中小企业的Web应用,其性能较ASP3.0有了极大的提高。
下面就介绍让Apache支持ASP.NET的办法。

首先,必须要有Windows环境和.NET Framework的支持。此外还建议安装安装.NET开发工具如.NET Framework SDK或者VisualStudio.NET。需要注意的是Windows的版本应为2000、2003和XP。Win9X系列不能安装.NET Framework。

然后需要安装Apache。应该使用Win32平台的Apache,版本2.0以上。推荐使用2.0.51版本。下载地址:
http://apache.freelamp.com/httpd/binaries/win32/apache_2.0.52-win32-x86-no_ssl.msi
具体的安装过程请参阅其他文章,本文不再赘述。

下面要下载并安装Apache环境下的ASP.NET模块。下载地址:
http://www.apache.org/dist/httpd/mod_aspdotnet/mod_aspdotnet-2.0.0.msi
下载完成后双击打开,一路Next即可安装完成。

为了便于管理,我们在htdocs目录下新建一个active目录,专门存放.aspx文件。现在需要对httpd.conf文件作一定配置,在文件末尾添加:

#
LoadModule aspdotnet_module "modules/mod_aspdotnet.so"

AddHandler asp.net asax ascx ashx asmx  axd config cs csproj 
            licx rem resources resx soap vb vbproj vsdisco webinfo 

<IfModule mod_aspdotnet.cpp>

  # Mount the ASP.NET example application
  AspNetMount /active "D:/Program Files/ Group/2/htdocs/active"

  # Map all requests for /active to the application files
  Alias /active "D:/Program Files/Apache Group/Apache2/htdocs/active"

  # Allow asp.net scripts to be executed in the active example
  <Directory "D:/Program Files/Apache Group/Apache2/htdocs/active">
    Options FollowSymlinks ExecCGI
    Order allow,deny
    Allow from all
    DirectoryIndex Default.htm Default.aspx
  </Directory>

  # For all virtual ASP.NET webs, we need the aspnet_client files 
  # to serve the client-side helper scripts.
  AliasMatch /aspnet_client/system_web/(d+)_(d+)_(d+)_(d+)/(.*) 
      "C:/Windows/Microsoft.NET/Framework/v$1.$2.$3/ASP.NETClientFiles/$4"
  <Directory 
      "C:/Windows/Microsoft.NET/Framework/v*/ASP.NETClientFiles">
    Options FollowSymlinks
    Order allow,deny
    Allow from all
  </Directory>

</IfModule>

其中D:/Program Files/Apache Group/Apache2是Apache的安装目录,应根据实际情况更改。
现在可以在active目录下放上ASP.NET探针。重启Apache之后,即可体验Apache下的ASP.NET了。

由于IIS和Apache下的ASP.NET都是运行在Common Language Runtime(CRL)的基础上,因此Apache环境下的ASP.NET程序的运行速度不会比在IIS下慢。

让linux/unix 支持 asp.net

 今天刚刚找了这个东西,如果找点找的话 我自己还可以试试,也不用将服务器系统换为 WINDOWS 了,吃亏了。。。

上次还这么麻烦去换系统。。。不过在我想来虽然能支持,但是肯定支持状况不会很好。下面是下载地址:

http://www.mono-project.com/Downloads

Mono installguide

安装步骤
mono
rpm -ivh *.rpm

gtk-sharp-2.0
rpm -ivh *.rpm

xsp(webserver)
rpm -ivh *.rpm

apache配置

Alias /aspnet "/usr/share/doc/xsp/test"       MonoApplications "/aspnet:/usr/share/doc/xsp/test"       <Directory /usr/share/doc/xsp/test>               SetHandler mono       </Directory>