【问题标题】:IIS Error 'Could not find stored procedure 'MyProcedure'IIS 错误'找不到存储过程'MyProcedure'
【发布时间】:2018-08-06 11:14:36
【问题描述】:

我查看了其他类似标题的帖子,但没有任何建议对我有用。

使用 SQL Server 2014、VS2015 和 IIS 8.0.9

应用程序在 VS 中启动时运行良好,但在部署到 IIS 时失败并出现上述错误。该网页包含一个下拉框以及一个开始和结束日期文本框。用户可以从下拉列表中选择医院并输入开始和结束日期标准,单击一个按钮,结果将在 gridview 控件中返回。正如我所说,这在 VS 中完美运行。

当我登录到我的 IIS 服务器时,打开 IIS 导航到我的应用程序并从选项中选择“浏览”并尝试导航到这个特定的网页,就会生成错误。所有其他功能都按预期工作。

我尝试过的:

  1. 已检查存储过程的拼写是否正确
  2. 通过使用相同的凭据登录 SSMS 并执行存储过程,检查了我的连接字符串中用户的登录凭据。 两者都可以。
  3. 已检查用户对存储过程的权限。用户是“db_execute”角色的成员,我认为可以
  4. 已检查登录凭据是否与 IIS 中的凭据匹配。他们这样做是因为所有其他功能都在工作,并且他们都使用相同的登录凭据
  5. 已运行 SQL Profiler 跟踪。它没有发现任何我可以看到的问题
  6. 已多次删除并重新创建存储过程。没有变化
  7. 已从 IIS 中删除应用程序并重新创建。没有变化
  8. 已安装在运行不同版本 IIS (6) 的服务器上。同样的错误
  9. 挠头,没有想法......
  10. 准备从窗口扔电脑

T-SQL

    @HospitalID INT = NULL,
    @StartSamplingDate DATETIME = NULL,
    @EndSamplingDate DATETIME = NULL
AS
BEGIN
    SET NOCOUNT ON;

    SELECT 
        DNASCreeningID, Surname, Forename, DoB, T21DNAResult, T18DNAResult, 
        T13DNAResult, SamplingDate
    FROM 
        tblPatients
    WHERE 
        (@HospitalID IS NULL OR HospitalID = @HospitalID)
        AND ((@StartSamplingDate IS NULL) OR SamplingDate >= @StartSamplingDate)
        AND ((@EndSamplingDate IS NULL) OR SamplingDate <= @EndSamplingDate)
    ORDER BY 
        DNAScreeningID ASC
END

如有任何建议或想法,我将不胜感激。谢谢。

【问题讨论】:

  • 您是否连接到正确的数据库?我会冒险猜测您正在连接到存储过程所在的不同数据库。这不是权限问题,因为这会导致不同的错误。此外,它有一个包罗万象的查询的“气味”,它的执行非常糟糕:Catch-all Queries
  • 您是否在 IDE 中单步执行过代码?
  • @Larnu。是的,我正在连接到正确的数据库。
  • @Prescott Chartier。如果您的意思是在 Visual Studio 中,那么是的。该页面按预期工作,并根据所选条件返回预期结果。
  • 这取决于您使用的连接字符串。如果您选择 Windows 身份验证,则在 VS 中运行时,应用程序使用您的登录凭据,而在 IIS 上,它使用应用程序标识。两种场景完全不同,你的数据库访问控制可以简单的阻塞后者。

标签: sql-server vb.net iis


【解决方案1】:

如果可能,请检查数据库连接,您的连接设置为错误的应用程序

【讨论】:

    猜你喜欢
    • 2023-04-09
    • 2017-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    • 2023-03-30
    相关资源
    最近更新 更多