我创建了一个ASPX Web应用程序,我已编译并在我的本地PC上运行Visual Studio时工作正常。
但是,在服务器上我收到错误消息
* 编译器错误消息:BC30451:未声明'epoDB'。由于其保护级别,它可能无法访问。 *
epoDB是我所拥有的类的名称,它包含多个方法。我没有使用“Code-Behind”文件,这只是一个单独的文件epoDB.vb。当我发布这个网站时,它在BIN文件夹中创建一个60 KB的DLL。我检查了webConfig并正确设置以允许所有程序集。
以下是一些代码:(ASPX PAGE)
<% @ Import Namespace="epoApprover"
If Not Action = "X" Then Decrypted = epoDB.AES_Decrypt(RawString)
%>
第一次点击这个方法AES_Decrypt时,我被告知不会声明epoDB。
这是epoDB.vb
Public Class epoDB
Public Shared Function AES_Decrypt(ByVal input As String) As String
'decryption method
Return decrypted
End Function
End Class
此EpoDB.vb是一个单独的文件。我有几个类,它编译成一个60KB的epoApprover.dll,但我似乎无法访问任何这些类。
使用.NET 4.0 / IIS6 / Windows 2003 64位。
我尝试了很多东西,例如将这些类放在App_Code中,将它们留在root上,但似乎没有任何工作 - 我想我错过了一个基础。有什么建议吗?
答案 0 :(得分:1)
原来,IIS只是设置为一个Web文件夹。一旦我将其转换为Web应用程序,它就能够找到所有内容。我知道这是基本的东西!
答案 1 :(得分:0)
您正在使用Page
声明混合您的代码。
<% @ Import Namespace="epoApprover"
If Not Action = "X" Then Decrypted = epoDB.AES_Decrypt(RawString)
%>
所以:
<%@ Import Namespace="epoApprover"%>
<%
If foo Then
....
End If
%>
虽然inline
样式(不是CodeFile
也不是CodeBehind
)代码在:
<script runat="server">
`Sub procs, Functions, etc.
</script>
您的.vb
文件应位于App_Code
。不确定上面的代码如何在您的本地PC上运行。
... H个