Avatar billede anadan Nybegynder
05. september 2005 - 12:02 Der er 19 kommentarer og
1 løsning

applicationpath til asp.net og winform

Jeg skal bruge applicationpath til min app. Kommandoen skal virke til både asp.net og winforms, da det skal ligge i en dll, der skal kunne kaldes fra både asp.net og en windowsform
Avatar billede spif2001 Nybegynder
05. september 2005 - 14:03 #1
Kender ikke så meget til asp.net, men kan du ikke bruge Environment.CurrentDirectory?
Avatar billede anadan Nybegynder
05. september 2005 - 14:07 #2
Desværre, i en winform får jeg den korrekte path, men i asp.net c:\windows\system32, hvor den self skulle være c:\inetpub\wwwroot\MyWebserver
Avatar billede spif2001 Nybegynder
05. september 2005 - 14:23 #3
Så virker Environment.CommandLine vel heller ikke...
Avatar billede anadan Nybegynder
05. september 2005 - 14:28 #4
den giver C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_wp.exe
Avatar billede spif2001 Nybegynder
05. september 2005 - 14:29 #5
og hvad så med den gode gamle Application.StartupPath
Avatar billede anadan Nybegynder
05. september 2005 - 14:39 #6
Den resulterer i en asp.net i følgende :

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

Illegal characters in path.
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.ArgumentException: Illegal characters in path.

Source Error:


Line 42:                 {
Line 43:                     instance = new Settings("settings");
Line 44:                     Debug.WriteLine("path "+System.Windows.Forms.Application.StartupPath.Length+" ");
Line 45:                     Debug.Write(System.Windows.Forms.Application.StartupPath);
Line 46:


Source File: c:\cvsnt\posh\implementation\poshpack\persistence\xml\settings.cs    Line: 44

Stack Trace:


[ArgumentException: Illegal characters in path.]
  System.Security.Permissions.FileIOPermission.HasIllegalCharacters(String[] str) +276
  System.Security.Permissions.FileIOPermission.AddPathList(FileIOPermissionAccess access, String[] pathListOrig, Boolean checkForDuplicates, Boolean needFullPath, Boolean copyPathList) +88
  System.Security.Permissions.FileIOPermission..ctor(FileIOPermissionAccess access, String path) +66
  System.Windows.Forms.Application.get_StartupPath()
  POSH.Persistence.XML.Settings.get_Instance() in c:\cvsnt\posh\implementation\poshpack\persistence\xml\settings.cs:44
  POSH.GUI.Administration.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\posh webserver\administration.aspx.cs:69
  System.Web.UI.Control.OnLoad(EventArgs e) +67
  System.Web.UI.Control.LoadRecursive() +35
  System.Web.UI.Page.ProcessRequestMain() +750
Avatar billede spif2001 Nybegynder
05. september 2005 - 14:45 #7
Der var da en underlig fejl - en writeline der brokker sig over tegn?

Hvad bruger du det til, siden fejlen kommer?
Avatar billede spif2001 Nybegynder
05. september 2005 - 14:46 #8
Den returnerer jo f.eks. @"C:\EtEllerAndet" - er det @ den ikke kan lide?
Avatar billede anadan Nybegynder
05. september 2005 - 14:47 #9
aner det ikke, jeg kan jo ikke udskrive det
Avatar billede anadan Nybegynder
05. september 2005 - 14:48 #10
det giver ikke problemer under winform versionen
Avatar billede spif2001 Nybegynder
05. september 2005 - 14:51 #11
Debug.WriteLine("path "+System.Windows.Forms.Application.StartupPath.Length+" ");

den skal da bare virke?!?

prøv at ToString længden:

Debug.WriteLine("path "+System.Windows.Forms.Application.StartupPath.Length.ToString()+" ");
Avatar billede anadan Nybegynder
05. september 2005 - 14:53 #12
Samme problem
Avatar billede spif2001 Nybegynder
05. september 2005 - 14:59 #13
Nu spørger jeg lige igen dumt - ingen sap.net erfaring...

Men stacktracet starter jo med at flippe ud over noget FileIOPermission - har du rettigheder til det du prøver?
Avatar billede anadan Nybegynder
05. september 2005 - 15:05 #14
ja, lavede lige et dobbeltcheck
Avatar billede spif2001 Nybegynder
05. september 2005 - 15:08 #15
hmm - så tror jeg, at jeg melder pas :) - kan ikke lige se hvorfor det skulle fejle.
Avatar billede lifo Nybegynder
05. september 2005 - 15:09 #16
i ASP.NET er det Server.MapPath(".");
Avatar billede anadan Nybegynder
05. september 2005 - 15:10 #17
Jeg ved at det er Server.MapPath, men den kommando kan _kun_ bruges fra asp.net, det skal være en universiel kommando der kan benyttes i en DLL
Avatar billede wisen Nybegynder
05. september 2005 - 15:35 #18
Prøv med System.Reflection.Assembly.GetExecutingAssembly().CodeBase.ToString()
Avatar billede anadan Nybegynder
05. september 2005 - 15:52 #19
wisen: ja, der var noget jeg kunne bruge :).
Der er dog lige en file:// i asp.net, og ikke i winforms, men det skulle ikke være noget problem at fjerne, svar for point...
Avatar billede wisen Nybegynder
05. september 2005 - 17:43 #20
1 stk. svar :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester