Gå til innhold

Publisering av asp.net funker ikke på server med local db


Anbefalte innlegg

Folkens.

 

Jeg har laget en liten web app som kunn skal holde noe enkle kunde data. Til dette valgte jeg enkelt og greit å bruke LocalDB og ikek noe SQL server opplegg, rett og slett for enkelheten skyld. Prosjektet kjører som bare det i Visual studio, men når jeg prøver dette på en Windows 2008 server med IIS så feiler det med følgende exception


Server Error in '/' Application.
--------------------------------------------------------------------------------


 The system cannot find the file specified 
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.ComponentModel.Win32Exception: The system cannot find the file specified

Source Error: 




An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.


Stack Trace: 





[Win32Exception (0x80004005): The system cannot find the file specified]

[SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 52 - Unable to locate a Local Database Runtime installation. Verify that SQL Server Express is properly installed and that the Local Database Runtime feature is enabled.)]
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +6675286
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) +688
   System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover) +6701832
   System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover) +219
   System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout) +6703968
   System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance) +6704427
   System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions) +610
   System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) +1049
   System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) +74
   System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnectionOptions userOptions) +6706995
   System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnectionOptions userOptions) +78
   System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) +2192
   System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) +116
   System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) +1012
   System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +6711619
   System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) +152
   System.Data.SqlClient.SqlConnection.Open() +229
   System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1.Dispatch(TTarget target, Action`2 operation, TInterceptionContext interceptionContext, Action`3 executing, Action`3 executed) +207
   System.Data.Entity.Infrastructure.Interception.DbConnectionDispatcher.Open(DbConnection connection, DbInterceptionContext interceptionContext) +438
   System.Data.Entity.SqlServer.<>c__DisplayClass1.<Execute>b__0() +15
   System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute(Func`1 operation) +263
   System.Data.Entity.SqlServer.SqlProviderServices.UsingConnection(DbConnection sqlConnection, Action`1 act) +391
   System.Data.Entity.SqlServer.SqlProviderServices.UsingMasterConnection(DbConnection sqlConnection, Action`1 act) +749
   System.Data.Entity.SqlServer.SqlProviderServices.DbCreateDatabase(DbConnection connection, Nullable`1 commandTimeout, StoreItemCollection storeItemCollection) +314
   System.Data.Entity.Migrations.Utilities.DatabaseCreator.Create(DbConnection connection) +281
   System.Data.Entity.Migrations.DbMigrator.EnsureDatabaseExists(Action mustSucceedToKeepDatabase) +230
   System.Data.Entity.Internal.DatabaseCreator.CreateDatabase(InternalContext internalContext, Func`3 createMigrator, ObjectContext objectContext) +130
   System.Data.Entity.Database.Create(DatabaseExistenceState existenceState) +267
   System.Data.Entity.CreateDatabaseIfNotExists`1.InitializeDatabase(TContext context) +243
   System.Data.Entity.Internal.InternalContext.PerformInitializationAction(Action action) +66
   System.Data.Entity.Internal.InternalContext.PerformDatabaseInitialization() +596
   System.Data.Entity.Internal.RetryAction`1.PerformAction(TInput input) +208
   System.Data.Entity.Internal.LazyInternalContext.InitializeDatabaseAction(Action`1 action) +266
   System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType) +39
   System.Data.Entity.Internal.Linq.InternalSet`1.Initialize() +72
   System.Data.Entity.Internal.Linq.InternalSet`1.get_InternalContext() +21
   System.Data.Entity.Infrastructure.DbQuery`1.System.Linq.IQueryable.get_Provider() +64
   System.Linq.Queryable.Count(IQueryable`1 source) +67
   RivertonCRMDevEx3.Model.GlobalData..ctor() +99
   RivertonCRMDevEx3.Model.WebPage.GetGlobalData() +113
   RivertonCRMDevEx3.Model.WebPage.OnLoad(EventArgs e) +24
   System.Web.UI.Control.LoadRecursive() +71
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3178
 


--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.17929 

Sli ser Connection strengen ut:

<add name="Model1" connectionString="data source=(LocalDB)\v11.0;attachdbfilename=|DataDirectory|\RivertonCRM.mdf;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />

 

I katalogen C:\WebPages\Riverton\App_Data ligger følgende to filer:

RivertonCRM.mdf

RivertonCRM_log.ldf

 

Alle tips er veldig veklommne her.

 

Takker på forhånd..

 

Lenke til kommentar
Videoannonse
Annonse

Tusenkronersspørsmålet blir vel da hva variablen "DataDirectory" inneholder ....

 

(Vill gjetting, jeg driver ikke med .NET)

|DataDirectory| er et keyword og er App_Data, så det stemmer. Jeg hadde tatt en kikk på disse linkene i prioritert rekkefølge:

http://blogs.msdn.com/b/sqlexpress/archive/2011/12/09/using-localdb-with-full-iis-part-1-user-profile.aspx

http://blogs.msdn.com/b/sqlexpress/archive/2011/12/09/using-localdb-with-full-iis-part-2-instance-ownership.aspx

 

LocalDb funker ikke i full IIS uten videre.

Lenke til kommentar

Thanx Jackal ;-)

 

Men du, jeg leste artikkelen og den henviser til en config fil i en katalog, men den katalogen er tom ???

 

Altså katalogen : C:\Windows\System32\inetsrv\Config

 

Noe du vet noe om? Kan det være på et annet sted på serveren jeg prøver å kjøre på? Prøver å kjøre dette på en Windows 2008 R2 plain installasjon.

Lenke til kommentar

Kan være noe redirect crap pga x64 og system32 katalogen. Du kan imidlertid sette forskjellige properties via appcmd. Om du scroller en del ned på siden her http://www.iis.net/learn/get-started/getting-started-with-iis/getting-started-with-appcmdexe så tipper jeg du finner ut hvordan du kan legge til de 2 propertiene ved hjalp av denne kommandoen. Du kan starte med å kjøre "%systemroot%\system32\inetsrv\APPCMD list apppool "MyAppPool" /text:*" for å liste konfigurasjonen som er der nå.

 

Edit: Hvis jeg var deg, ville jeg laget en spesifikk apppool for dette formålet siden det er en litt spesiell case...og i alle fall hvis du kjører andre siter på samme IIS

Endret av The Jackal
Lenke til kommentar

appcmd set apppool "MyAppPool" /processModel.loadUserProfile:true /processModel.setProfileEnvironment:true

 

tror dette skal funke

 

Edit. fikset kommando

Wow, nå ble det komplisert her ;-)

 

Men jeg testet, bare for å se hva som skjedde:

 

Skrev følgende:

%systemroot%\system32\inetsrv\appcmd set apppool "Riverton" /processModel.loadUserProfile:true /processModel.setProfileEnvironment:true

 

Når jeg så trykker enter så får jeg

ERROR ( message:Unknown attribute "processModel.setProfileEnvironment". Replace -? for help.

 

Hva skulle denne kommandoen gjøre forresten?

 

btw - når jeg skrev det første du skrev for å få en liste så fikk jeg følgende:

APPPOOL "Riverton" (MgdVersion:v4.0,MgdMode:Integrated,state:Started)

Lenke til kommentar

 

appcmd set apppool "MyAppPool" /processModel.loadUserProfile:true /processModel.setProfileEnvironment:true

 

tror dette skal funke

 

Edit. fikset kommando

Wow, nå ble det komplisert her ;-)

 

Men jeg testet, bare for å se hva som skjedde:

 

Skrev følgende:

%systemroot%\system32\inetsrv\appcmd set apppool "Riverton" /processModel.loadUserProfile:true /processModel.setProfileEnvironment:true

 

Når jeg så trykker enter så får jeg

ERROR ( message:Unknown attribute "processModel.setProfileEnvironment". Replace -? for help.

 

Hva skulle denne kommandoen gjøre forresten?

 

btw - når jeg skrev det første du skrev for å få en liste så fikk jeg følgende:

APPPOOL "Riverton" (MgdVersion:v4.0,MgdMode:Integrated,state:Started)

 

 

Kan du prøve å kjøre dem hver for seg? Altså:

appcmd set apppool "Riverton" /processModel.loadUserProfile:true

appcmd set apppool "Riverton" /processModel.setProfileEnvironment:true

 

Om det ikke fungerer, hva er outputen fra

appcmd list apppool "Riverton" /text:*

Lenke til kommentar

 

 

appcmd set apppool "MyAppPool" /processModel.loadUserProfile:true /processModel.setProfileEnvironment:true

 

tror dette skal funke

 

Edit. fikset kommando

Wow, nå ble det komplisert her ;-)

 

Men jeg testet, bare for å se hva som skjedde:

 

Skrev følgende:

%systemroot%\system32\inetsrv\appcmd set apppool "Riverton" /processModel.loadUserProfile:true /processModel.setProfileEnvironment:true

 

Når jeg så trykker enter så får jeg

ERROR ( message:Unknown attribute "processModel.setProfileEnvironment". Replace -? for help.

 

Hva skulle denne kommandoen gjøre forresten?

 

btw - når jeg skrev det første du skrev for å få en liste så fikk jeg følgende:

APPPOOL "Riverton" (MgdVersion:v4.0,MgdMode:Integrated,state:Started)

 

 

Kan du prøve å kjøre dem hver for seg? Altså:

appcmd set apppool "Riverton" /processModel.loadUserProfile:true

appcmd set apppool "Riverton" /processModel.setProfileEnvironment:true

 

Om det ikke fungerer, hva er outputen fra

appcmd list apppool "Riverton" /text:*

 

Heisan. Første går greit. Neste får samme feil som nevnt over. Men jeg testet med -? og finner ingen property som heter setProfileEnvironment. Ække det litt rart da? Er det kansje et bibliotek som ikke er lastet eller noe ?

Lenke til kommentar

Heisan. Første går greit. Neste får samme feil som nevnt over. Men jeg testet med -? og finner ingen property som heter setProfileEnvironment. Ække det litt rart da? Er det kansje et bibliotek som ikke er lastet eller noe ?

 

 

 

Litt usikker egentlig...mulig du må oppdatere IIS. Kan se ut som om setProfileEnvironement ble lagt til i IIS 8 i følge denne linken: http://www.iis.net/configreference/system.applicationhost/applicationpools/add/processmodel#002.

Lenke til kommentar

 

Heisan. Første går greit. Neste får samme feil som nevnt over. Men jeg testet med -? og finner ingen property som heter setProfileEnvironment. Ække det litt rart da? Er det kansje et bibliotek som ikke er lastet eller noe ?

 

 

 

Litt usikker egentlig...mulig du må oppdatere IIS. Kan se ut som om setProfileEnvironement ble lagt til i IIS 8 i følge denne linken: http://www.iis.net/configreference/system.applicationhost/applicationpools/add/processmodel#002.

 

Ok. Kjører noen oppdateringer så får vi se om det hjelper ;-)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...