diff --git a/data/resources/StringResources.resx b/data/resources/StringResources.resx
index 1ebec213b4..23747d0d46 100644
--- a/data/resources/StringResources.resx
+++ b/data/resources/StringResources.resx
@@ -3785,6 +3785,9 @@ You can also choose to store the setting in the .user-file instead of the projec
Debugger was unable to attach to process.
+
+ There is no startup project to debug.
+
Code Covered
diff --git a/src/AddIns/Debugger/Debugger.AddIn/Service/WindowsDebugger.cs b/src/AddIns/Debugger/Debugger.AddIn/Service/WindowsDebugger.cs
index 83818dff69..b049338826 100644
--- a/src/AddIns/Debugger/Debugger.AddIn/Service/WindowsDebugger.cs
+++ b/src/AddIns/Debugger/Debugger.AddIn/Service/WindowsDebugger.cs
@@ -139,38 +139,36 @@ namespace ICSharpCode.SharpDevelop.Services
InitializeService();
}
- if (FileUtility.IsUrl(processStartInfo.FileName))
- {
- if (ProjectService.CurrentProject == null) {
- MessageService.ShowError("${res:ICSharpCode.WepProjectOptionsPanel.NoProjectUrlOrProgramAction}");
+ if (FileUtility.IsUrl(processStartInfo.FileName)) {
+ var project = ProjectService.OpenSolution.Preferences.StartupProject as CompilableProject;
+
+ if (project == null) {
+ MessageService.ShowError("${res:ICSharpCode.WepProjectOptionsPanel.NoStartupProject}");
return;
}
- var debugData = WebProjectsOptions.Instance.GetWebProjectOptions(ProjectService.CurrentProject.Name);
+ var debugData = WebProjectsOptions.Instance.GetWebProjectOptions(project.Name);
if (debugData == null) {
MessageService.ShowError("${res:ICSharpCode.WepProjectOptionsPanel.NoProjectUrlOrProgramAction}");
return;
}
- var project = ProjectService.CurrentProject as CompilableProject;
System.Diagnostics.Process localProcess = null;
- if (project != null) {
- // start browser
- if (project.StartAction == StartAction.StartURL)
- localProcess = System.Diagnostics.Process.Start(processStartInfo.FileName);
- else
- if (!string.IsNullOrEmpty(debugData.Data.ProjectUrl) && debugData.Data.WebServer == WebServer.IIS)
- localProcess = System.Diagnostics.Process.Start(debugData.Data.ProjectUrl);
- }
+ // start default application(e.g. browser)
+ if (project.StartAction == StartAction.StartURL)
+ localProcess = System.Diagnostics.Process.Start(processStartInfo.FileName);
+ else
+ if (!string.IsNullOrEmpty(debugData.Data.ProjectUrl) && debugData.Data.WebServer == WebServer.IIS)
+ localProcess = System.Diagnostics.Process.Start(debugData.Data.ProjectUrl);
- // try debug IIS WP
+ // try attach to IIS WP
var processes = System.Diagnostics.Process.GetProcesses();
string processName = WebProjectService.WorkerProcessName;
if (debugData.Data.WebServer == WebServer.IISExpress)
processName = "iisexpress";
foreach(var process in processes) {
- if (process.ProcessName.ToLower().IndexOf(processName) > -1) {
+ if (process.ProcessName.ToLower().IndexOf(processName) == 0) {
Attach(process);
break;
}
diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/DebugOptions.cs b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/DebugOptions.cs
index 071bc4e3fb..7d4d0af151 100644
--- a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/DebugOptions.cs
+++ b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/DebugOptions.cs
@@ -61,7 +61,7 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
if (isWebProject) {
ElementHost host = new ElementHost();
host.Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right;
- host.Height = 160;
+ host.Height = 150;
host.Width = 550;
host.Top = 240;
host.Left = 8;
diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/WebProjectOptions/WebProjectOptionsPanel.xaml b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/WebProjectOptions/WebProjectOptionsPanel.xaml
index eabce7e8e1..128c54e8d3 100644
--- a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/WebProjectOptions/WebProjectOptionsPanel.xaml
+++ b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/WebProjectOptions/WebProjectOptionsPanel.xaml
@@ -2,7 +2,7 @@
-
diff --git a/src/Main/Base/Project/Src/Services/WebProjectService/WebProjectService.cs b/src/Main/Base/Project/Src/Services/WebProjectService/WebProjectService.cs
index 54516431d9..c01374163f 100644
--- a/src/Main/Base/Project/Src/Services/WebProjectService/WebProjectService.cs
+++ b/src/Main/Base/Project/Src/Services/WebProjectService/WebProjectService.cs
@@ -119,8 +119,8 @@ namespace ICSharpCode.SharpDevelop.Project
default:
using (var manager = new Microsoft.Web.Administration.ServerManager())
{
- string name = "/" + virtualDirectoryName;
if (manager.Sites[DEFAULT_WEB_SITE] != null) {
+ string name = "/" + virtualDirectoryName;
if (manager.Sites[DEFAULT_WEB_SITE].Applications[name] == null) {
manager.Sites[DEFAULT_WEB_SITE].Applications.Add(name, physicalDirectoryPath);
manager.CommitChanges();