Heat the butter and half of the olive oil in a large saucepan. Add the shallots and cook over medium heat for 3 minutes. Add the mushrooms and cook over low heat for 2 minutes. Season to taste with salt and black pepper, then sprinkle over the flour and cook, stirring constantly, for 1 minute.
Gradually stir in the milk and port, then add the sun-dried tomatoes and a pinch of grated nutmeg, and cook over low heat for 8 minutes.
Meanwhile, bring a large saucepan of lightly salted water to a boil. Add the spaghetti and remaining olive oil and cook for 12-14 minutes, or until tender but still firm to the bite.
Drain the spaghetti and return to the pan. Pour over the mushroom sauce and cook for 3 minutes. Transfer the spaghetti and mushroom sauce to a large serving plate and sprinkle over the chopped parsley.